1
내 열의 데이터 형식을 기반으로 함수를 조건부로 적용하려고하면 apply
이라는 이상한 동작이 발생합니다.왜`apply` 함수가 data.frame의 숫자 형 열을 감지하고 처리 할 수 없습니까?
여기에 함수가 있습니다. class()
을 확인한 다음 적절한 작업을 수행합니다.
sampleF <- function(x){
DT = ifelse(class(x) == "numeric" | class(x) == "integer","Numbers",
ifelse(class(x) == "character" | class(x) == "factor","Text","Others"))
return(DT)
}
아래의 data.frame에 적용하여 잘못된 출력을 얻으려고합니다.
df1 <- data.frame(Col1 = letters[1:5],Col2 = 1:5,Col3 = as.factor(c("A","B","A","C","A")))
출력 : 반면에
apply(df1,2,FUN = sampleF)
Col1 Col2 Col3
"Text" "Text" "Text"
sapply
, 제공 apply
기능의 그런 행동에 대한 이유가 무엇인지 정확한 출력
sapply(df1,sampleF)
Col1 Col2 Col3
"Text" "Numbers" "Text"
?