r - 如何使用字符变量来引用 R 中的 data.frame?
问题描述
我有一个动态数量的 data.frames,具体取决于输入 - n_tables。
n_tables = 5 ## This may vary between 3 to 12
for(i in 1:n_tables){
assign(paste0("r", i),data.frame(X = c("a","b","c"),Y = runif(3,0,10)))
}
现在,我需要将所有这些 data.frames 放在一个列表中并将它们子集化。我已经尝试了下面的代码,但没有工作 -
t <- paste0("r",1:n_tables)
p <-lapply(t,function(x){(x[x$X == "a",])})
先感谢您。
解决方案
您可以使用get()
来获取对象,即
p <-lapply(t,function(x){x <- get(x);x[x$X == "a",]})
这样
> p
[[1]]
X Y
1 a 5.550481
[[2]]
X Y
1 a 5.365116
[[3]]
X Y
1 a 5.783017
[[4]]
X Y
1 a 2.782952
[[5]]
X Y
1 a 2.123357
推荐阅读
- azure-cosmosdb - 在 CosmosDB 中创建文档时 disableAutomaticIdGeneration 是否有性能优势?
- ansible - 需要 ansible 库存文件详细信息
- docker - 如何将 zap 会话文件传递给 dockerized zap 扫描仪?
- javascript - 应用查询后重置 OnDemandGrid dGrid
- javascript - Google Script Time-Based Trigger -> 一直请求授权
- python - 使用 pandas read_csv 方法的 Python 多级索引
- javascript - 如何将数组值添加到对象
- hyperledger-fabric - Hyperledger Fabric 网络/应用程序的硬件大小调整
- mainframe - JCL - SORTIN 动态添加
- html - iPhone上的输入焦点问题