我有以下的数据框列表:
library(carData)
library(datasets)
l = list(Salaries,iris)
我只想在这个数据集列表中选择数字列。已经尝试使用带有函数
select_if(is.numeric)
的lapply
,但它对我没有用。使用lapply
两次来设置R
选项的基础方法如下:
library(carData)
library(datasets)
l = list(Salaries,iris)
lapply(l, \(x) x[, unlist(lapply(x, is.numeric), use.names = FALSE)])
#> [[1]]
#> yrs.since.phd yrs.service salary
#> 1 19 18 139750
#> 2 20 16 173200
#> 3 4 3 79750
#> 4 45 39 115000
#> 5 40 41 141500
#>
#> [[2]]
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> 1 5.1 3.5 1.4 0.2
#> 2 4.9 3.0 1.4 0.2
#> 3 4.7 3.2 1.3 0.2
#> 4 4.6 3.1 1.5 0.2
#> 5 5.0 3.6 1.4 0.2
使用 reprex v2.0.2 工具于 2022 年 9 月 25 日创建
library(purrr)
library(dplyr)
map(l, ~ .x %>%
select(where(is.numeric)))
或者使用 基础 R
lapply(l, Filter, f = is.numeric)
lapply(l, \(x) x[sapply(x, is.numeric)])
更加简洁。 - jay.sf