假设,你有一个这样的data.frame:

x <- data.frame(v1=1:20,v2=1:20,v3=1:20,v4=letters[1:20])

如何只选择x中的数字列呢?


当前回答

如果你只对列名感兴趣,那么使用这个:

names(dplyr::select_if(train,is.numeric))

其他回答

另一种方法可能如下:-

#extracting numeric columns from iris datset
(iris[sapply(iris, is.numeric)])
Numerical_variables <- which(sapply(df, is.numeric))
# then extract column names 
Names <- names(Numerical_variables)
library(purrr)
x <- x %>% keep(is.numeric)

如果你只对列名感兴趣,那么使用这个:

names(dplyr::select_if(train,is.numeric))

这是其他答案的替代代码:

x[, sapply(x, class) == "numeric"]

用一个数据表

x[, lapply(x, is.numeric) == TRUE, with = FALSE]