检查 R 数据框中每个变量的数据类型

Checking data type for each variable in a R data frame

我想知道是什么导致了这两个命令之间的差异:

apply(DF,2,is.numeric)
c(ID = FALSE, diet = FALSE, height = FALSE, weight = FALSE, gender = FALSE, 
wohn = FALSE, social = FALSE, alter = FALSE, d13C = FALSE, d15N = FALSE, 
ferr = FALSE, VitB = FALSE)

sapply(DF,is.numeric)
c(ID = FALSE, diet = FALSE, height = TRUE, weight = TRUE, gender = FALSE, 
wohn = FALSE, social = FALSE, alter = TRUE, d13C = TRUE, d15N = TRUE, 
ferr = TRUE, VitB = TRUE)

我想我也可以将第一个用于数据框? 非常感谢

apply 首先将数据更改为矩阵,因为如果数据帧混合 class (数字,字符),矩阵只能保存一种类型的数据,因此它将数字列更改为字符值returning FALSEis.numeric

这里有一个例子来展示你所观察到的。

DF <- data.frame(a = 1:5, b = letters[1:5])
apply(DF, 2, is.numeric)

#    a     b 
#FALSE FALSE 

sapply(DF, is.numeric)

#    a     b 
# TRUE FALSE 

相反,如果dataframe的所有列都是数字apply将return TRUE.

DF <- data.frame(a = 1:5, b = 1:5)
apply(DF, 2, is.numeric)

#   a    b 
#TRUE TRUE