从数据框中提取具有数值的列

时间:2018-07-11 14:12:09

标签: r rstudio

对于大型数据集,我想从数据框中提取所有数值为数字的列。

#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

我该怎么办?

1 个答案:

答案 0 :(得分:2)

使用sapply

numdat <- df[,sapply(df, function(x) {class(x)== "numeric"})]