r - 如何将特定列表元素解压缩到 R 中的数据框中?
问题描述
一直在研究这个问题,发现只有将列表元素合并到一个大数据框中的解决方案。但是,我正在努力只打开那些满足特定条件的元素。
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”的列表元素。我正在考虑在 a 中编写一个循环函数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 技能非常糟糕,尤其是在编写函数方面,尽管我对这门语言并不陌生。对于那个很抱歉。
解决方案
使用grepl
/grep
查找名称中包含“DATA”的列表并将列表子集化。
result <- data_lists[grepl('DATA', names(data_lists))]
#With `grep`
#result <- data_lists[grep('DATA', names(data_lists))]
推荐阅读
- amazon-web-services - 如何管理触发 AWS Lambda 函数的 AWS Cloud Watch 事件突发
- google-apps-script - Autofill empty arrays with dragging functions from last non-empty row in Col C
- python - getBit 函数没有给出正确的结果
- azure - 如何使用 REST API 从 VM 中获取 Azure 订阅和资源组?
- javascript - Vue.js + Vue2Leaflet: update computed property on map moveend
- javascript - why firebase admob is not showing ads on real device
- c++ - QT MYSQL drive build, undefined reference to `mysql_get_client_version@0'
- php - Symfony 测试 - 带有 Guard 身份验证的空令牌
- python - i'm using django 1.1 with python 2.7. cant display pdf in browser it pops a notification for download
- javascript - 两次相同的随机数