对于大型数据集,我想从数据框中提取所有数值为数字的列。
#generate mixed data
dat <- matrix(rnorm(100), nrow = 20)
df <- data.frame(letters[1 : 20], dat)
我在想一些类似的事情:
numdat <- df[,df == "numeric"]
但是那让我没有变数。以下给出了一个错误。
dat <- df[,class == "numeric"]
Error in class == "numeric" :
comparison (1) is possible only for atomic and list types
我该怎么办?
答案 0 :(得分:2)
使用sapply
numdat <- df[,sapply(df, function(x) {class(x)== "numeric"})]