我的列表包含多个数据框,只有两列
DateTime Value
30-06-2016 100
31-07-2016 200
.
.
.
我只想从列表中提取值列。填充代码对我来说证明是不成功的。我在这做错了什么?
actual_data <- lapply(test_data, function(df) df[,is.numeric(df)])
> actual_data[[1]]
data frame with 0 columns and 12 rows
谢谢
答案 0 :(得分:0)
purrr::map
(lapply的增强版)为此类操作提供了一个快捷方式:
# Generate test data
set.seed(35156)
test_df <- data.frame('DateTime' = rnorm(100), 'Value' = rnorm(100))
test_data <- rep(list(test_df), 100)
# Use `map` from the purrr package to subset the data.frames
purrr::map(test_data, 'Value')
purrr::map(test_data, 2)
正如您在上面的示例中所看到的,您可以通过名称,通过将字符串作为第二个参数传递给purrr::map
来选择data.frame中的列,或者通过传递数字来按位置选择列。