【发布时间】:2021-05-19 03:58:45
【问题描述】:
一直在研究这个问题,发现只有将列表元素合并到一个大数据框中的解决方案。但是,我正在努力只解包那些满足特定条件的元素。
df1 <- iris %>% filter(Sepal.Length > 2.5)
df2 <- mtcars %>% filter(qsec > 16)
not_neccessary <- head(diamonds, 10)
not_neccessary2 <- head(beaver1, 12)
data_lists <- list("#123 DATA" = df1, "CON" = not_neccessary2, "#432 DATA" = df2, "COM" = not_neccessary)
我的目标是只转换名称中包含“DATA”的列表元素。我正在考虑在lapply 中编写一个循环函数:
a <- lapply(data_lists, function(x){if (x == "#+[1-9]+_+DATA"){new_df <- as.data.frame(x)}})
它不起作用。还试图制作一个for 循环:
for (i in list){
if (i == "#+[1-9]+_+DATA"){
df <- i
}
}
它也不起作用。
是否有任何有效的功能可以在特定条件下将我的列表解压缩到特定的数据帧中?我的 R 技能非常糟糕,尤其是在编写函数方面,尽管我对这门语言并不陌生。对此感到抱歉。
【问题讨论】:
标签: r list loops for-loop lapply