mydata.xlsx
(또는 mydata.txt
)- 나는 본 연구에 참여하는 것을 동의합니다. — 예, 아니오
- 귀하의 성별은? —남성, 여성
- 귀하의 나이는?
- 귀하의 학력은? — 고등학교 졸업 이하, 대학교 재학, 대학교 졸업, 대학원 재학 이상
- 귀하의 혼인 상태는? — 미혼, 기혼 (동거 포함), 기타 (이혼, 사별, 별거)
- 기본심리욕구(BPNS) 18문항 — 1 (전혀 아니다) ~ 5 (매우 그렇다)
1. 나는 다른 사람들에 의해 통제받고 억압을 받는다고 느낀다. (*)
2. 내 일을 진행하는 방법을 스스로 결정할 기회가 많지 않다. (*)
3. 일상생활에서 나는 자주 남이 시키는 대로 해야만 한다. (*)
4. 나는 대체로 내 생각과 의견을 자유롭게 표현할 수 있다고 느낀다.
5. 나는 내가 내 인생을 어떻게 살아갈지 스스로 결정할 수 있다고 느낀다.
6. 어떤 일을 할 때 내 생각대로 일을 처리하기 보다는 다른 사람의 생각이나 처리 방식을 따를 때가 많다. (*)
7. 나는 내 자신이 매우 효율적이라고 느낀다.
8. 나는 대부분 내가 하는 일들로부터 성취감을 느낀다.
9. 내가 아는 사람들은 내가 일을 잘한다고 말한다.
10. 나는 내게 주어진 일을 잘 해결할 능력이 있다고 느낀다.
11. 나는 내가 아는 것을 다른 사람에게 가르칠 수 있다고 느낀다.
12. 나는 다른 사람보다 잘하는 것이 많다고 느낀다.
13. 나는 내 주변 사람들로부터 사랑과 관심을 받는 것을 느낀다.
14. 나와 정기적으로 만나는 사람들은 나를 별로 좋아하지 않는 것 같다. (*)
15. 나는 내가 만나는 사람들과 잘 지낸다.
16. 나는 내 주변 사람들을 정말 좋아한다.
17. 내 주변 사람들과 나는 평소에 서로 도움을 주고 받는다.
18. 내 주변 사람들은 평소에 나와 감정을 공유할 때가 많다.
- 아동기 외상 (CTQ) 중 정서적 방임/학대 10문항 — 1 (전혀 없음) ~ 4 (자주 있음)
1. 내가 듣기 싫은 별명으로 부르곤 했다. (예: 멍청이, 뚱땡이)
2. 나에게 “너 같은 애는 태어나지 말았어야 했어.”라고 말한 적이 있다.
3. 가족 중에 나를 미워하는 사람이 있다고 느꼈다.
4. 가족 중에 나에게 모욕적인 이야기나 심한 말 등을 해서 마음이 상한 적이 있다.
5. 나는 정서적으로 학대를 당한 적이 있다.
6. 가족 안에서 사랑받았다고 느꼈다. (*)
7. 가족 안에서 내가 중요한 존재라는 생각이 들었다. (*)
8. 우리 가족들은 서로 가깝다고 느꼈다. (*)
9. 우리 가족은 나를 지지해준다고 느꼈다. (*)
10. 우리 가족은 서로를 배려한다고 느꼈다. (*)
[참고 1] *가 붙어 있는 문항은 역채점 문항을 나타낸다.
[참고 2] 기본심리욕구 척도의 경우, 문항 1~6은 자율성, 문항 7~12는 유능성, 문항 13~18은 관계성을 측정한다.
[참고 3] 아동기 외상 척도 중 문항 1~5는 정서적 학대, 문항 6~10은 정서적 방임을 측정한다.
mydf
라는 데이터프레임을 생성하는 명령은 다음과 같다.> mydf = as.data.frame(read_excel(path = '/cloud/project/mydata.xlsx'))
mydf
)은 변수명에 문항 내용이 입력되어 있는데, 이렇게 변수명이 길면 이후 전처리나 분석 과정에서 불편함이 많다. 따라서, 직관적으로 알기 쉽고 짧은 변수명으로 변경하는 것이 좋다.
mydata.txt
파일을 사용한 경우, 변수명이 파일에 포함되어 있지 않기 때문에 V1, V2,…
와 같은 변수명이 자동으로 지정된다.척도명+문항번호
와 같이 변수명을 생성하는 것이 편리한데, 이 때 다음과 같이 paste0()
함수를 사용할 수 있다.paste0()
함수는 입력된 인자들을 모두 문자열로 변환한 뒤 연결해주는 함수이다.> paste0('ab', 'cd')
[1] "abcd"
> paste0('ab', 'cd', 'e')
[1] "abcde"
> paste0('ab', 123, 'cd', 45)
[1] "ab123cd45"
> paste0('ab', c(1,2,3))
[1] "ab1" "ab2" "ab3"
> paste0(c(1,2,3), 'ab')
[1] "1ab" "2ab" "3ab"
> paste0(c(1,2,3), c('ab','cd','ef'))
[1] "1ab" "2cd" "3ef"
paste0()
함수를 사용해서 bpns1 ~ bpns18
까지 변수명을 생성하는 명령은 다음과 같다.> paste0('bpns', 1:18)
[1] "bpns1" "bpns2" "bpns3" "bpns4" "bpns5" "bpns6" "bpns7" "bpns8"
[9] "bpns9" "bpns10" "bpns11" "bpns12" "bpns13" "bpns14" "bpns15" "bpns16"
[17] "bpns17" "bpns18"
> 1:18
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
paste0()
함수와 names()
함수를 사용하면 아래와 같이 변수명을 바꿀 수 있다.> names(mydf) = c('agree', 'age', 'sex', 'edu', 'marital',
paste0('bpns', 1:18),
paste0('ctq', 1:10))
> names(mydf)
[1] "agree" "age" "sex" "edu" "marital" "bpns1" "bpns2"
[8] "bpns3" "bpns4" "bpns5" "bpns6" "bpns7" "bpns8" "bpns9"
[15] "bpns10" "bpns11" "bpns12" "bpns13" "bpns14" "bpns15" "bpns16"
[22] "bpns17" "bpns18" "ctq1" "ctq2" "ctq3" "ctq4" "ctq5"
[29] "ctq6" "ctq7" "ctq8" "ctq9" "ctq10"
<aside> 💡 [실습] 변수 이름 중 일부를 변경하고자 할 때는 어떻게 할 수 있을까요?
(1) marital
이라는 변수 이름을 marital.status
로 변경할 때 사용할 수 있는 명령을 작성해봅시다.
(2) ctq1 ~ ctq10
이라는 변수 이름을 ctq.e1 ~ ctq.e10
으로 변경할 때 사용할 수 있는 명령을 작성해봅시다.
</aside>