데이터 프레임의 각 열이 어떤 클래스인지 쉽게 알 수있는 방법은 무엇입니까?
답변:
한 가지 옵션은 lapply
및 class
. 예를 들면 :
> foo <- data.frame(c("a", "b"), c(1, 2))
> names(foo) <- c("SomeFactor", "SomeNumeric")
> lapply(foo, class)
$SomeFactor
[1] "factor"
$SomeNumeric
[1] "numeric"
또 다른 옵션은 str
다음과 같습니다.
> str(foo)
'data.frame': 2 obs. of 2 variables:
$ SomeFactor : Factor w/ 2 levels "a","b": 1 2
$ SomeNumeric: num 1 2
class
문자형 벡터를 반환하기 때문에 의 출력은 대부분의 사람들이 예상하는 문자형 벡터가 아닌 목록 일 수 있습니다. 조금 위험 할 수 있습니다 ... 훨씬 더 안전하다고 생각합니다. sapply(foo, class)
lapply
unlist(lapply(foo, class))
이것은 많은 열이있는 데이터 프레임에 편리하다.
unlist
로 lapply
그 가능성이 있기 때문에 끔찍한 생각이다 length(class(x))>1
(위의 설명 참조) - sapply
보다 훨씬 안전합니다 unlist + lapply
. 안전한 방법이 될 것이다 sapply(lapply(foo, class), "[", 1)
- 푸 데이터 프레임 주어진
sapply(foo, class)