R의 데이터를 보다보면 변수 속성이 제각각일 때가 많습니다. 어떤 건 숫자이고 (num), 어떤 건 팩터(factor)이고, 어떤 변수는 문자(character)이고.. 이럴 때 각 칼럼의 데이터 속성이 무엇인지를 볼 때 가장 흔하게 쓰는 명령어가 str()입니다. 예를 들어 R에서 데이터프레임 이름이 df이고 이 데이터프레임의 모든 칼럼 속성이 무엇인지 알고 싶다고 하면 그냥
str(df)하면 .. 아래와 같이 쭉 뜹니다...
근데 모든 칼럼 속성이 무엇인지 다 알 필요 없고, 각 칼럼의 속성이 factor인지 아닌지 그것만 알고 싶다고 하면
is.factor()라는 함수를 쓰는데 이 때는 어떤 칼럼을 테스트할지 적어줘야 합니다. 예를 들어 df라는 데이터프레임 중에 X2015라는 칼럼이 팩터인지 여부를 알고 싶다고 하면 그냥 is.factor(df$X2015)하면 되겠지요?
만약에 모든 칼럼을 일일이 테스트하면서 이게 팩터인지 여부를 다 알고 싶다고 하면 다음과 같이 하면 됩니다. sapply라는 함수가 있는데 매우 유용합니다. sapply는 참고로, 괄호 안에 있는 함수를 괄호 한에 있는 모든 경우에 다 일일이 대입해서 적용하라는 뜻으로 해석하면 되겠습니다.
우선, df라는 데이터프레임의 칼럼 이름들을 한 군데 몰아주시고
variable<-colnames(df)
그 다음에 sapply를 써서 이 모든 칼럼에 하나하나씩 is.factor()라는 함수를 적용시켜봐라. 하면 다음과 같은 결과가 뜹니다.
is.factor()이외에도 is.numeric(): 이 칼럼 속성이 숫자이니? 등이 있습니다. 이밖에도 is.na() is.null() 등등이 있습니다.
이 명령어가 생각보다 유용할 때가 많습니다. 왜냐하면 R로 데이터를 읽었는데 1을 그냥 1 (factor) 로 받아들이는 게 아니라 1.0000000 (numeric) 이런 continuous number로 받아들이는 경우도 있고 반대의 경우도 있습니다. 이 때는 이런 명령어를 통해 우선 칼럼의 속성을 파악하는 게 중요합니다. 그 다음에 속성 전환을 하면 됩니다.
'R > R basic' 카테고리의 다른 글
도대체 리스트, 벡터, 매트릭스, 데이터프레임이란 무엇인가 (0) | 2021.04.10 |
---|---|
R에 지금 열려 있는 데이터 지우기 (2) | 2021.04.07 |
조건을 걸어 자료 추출하기 (0) | 2020.06.12 |
R graph 결과를 pdf, jpeg 등으로 바로 export하려면? (0) | 2020.05.19 |
많은 칼럼 속성을 변환 시켜줄 경우: 칼럼 번호가 중요한 이유 (0) | 2020.05.16 |