如何在 R 中处理以相同结构命名的多个对象?
How to address several objects named in the same structure in R?
我想知道如何在我的 R 参数中包含满足特定命名要求的每个对象。假设这些对象都被称为这样的东西
var01 var02 var03 var04 varnn
例如,我在 Stata 中会做的就是这样
tab1 var*
它会用前 3 个字母 "var" 将每个变量制成表格。
在这个 post 的早期版本中,我对我在我的 R 项目中真正想做什么很含糊。所以就这样吧。我有一个 for 循环,它迭代了 650 个实例,目标是为这些实例中的每一个附加 6 个数据集。然而,对于某些人(我不知道是哪个),并非所有 6 个数据集都存在,这就是为什么这样写的 rbind 命令失败的原因:
rbind(data01, data02, data03, data04, data05, data06)
因此我想 运行 这样的事情
rbind(data*)
以便解释缺失的数据集。
很抱歉造成混淆,我最初写问题时不够清楚。
仅供参考,这是整个循环:
for(i in 1:650){
try(part1 <- read.csv(file = paste0("Twitter Scrapes/searchTwitter/09July/",MP.ID[i],".csv")))
try(part2 <- read.csv(file = paste0("Twitter Scrapes/userTimeline/08July/",MP.ID[i],".csv")))
try(part3 <- read.csv(file = paste0("Twitter Scrapes/userTimeline/16July/",MP.ID[i],".csv")))
try(part4 <- read.csv(file = paste0("Twitter Scrapes/searchTwitter/17July/",MP.ID[i],".csv")))
try(part5 <- read.csv(file = paste0("Twitter Scrapes/userTimeline/24July/",MP.ID[i],".csv")))
try(part6 <- read.csv(file = paste0("Twitter Scrapes/searchTwitter/24July/",MP.ID[i],".csv")))
allParts <- ls(pattern = "^part*")
allNames <- paste(allParts, collapse = ", ") # this is just what I tried just now, didn't work though
combined.df <- rbind(ALL THE DATASETS WITH PART))
}
数据
var01 <- sample(2, 10, TRUE)
var02 <- sample(2, 10, TRUE)
var03 <- sample(2, 10, TRUE)
vvv01 <- sample(2, 10, TRUE) # variable which should not be tabulated
代码
allV <- ls(pattern = "^var.*") # vector of all variables starting with 'var'
lapply(allV, function(.) table(get(.)))
说明
使用 ls
您可以获得所有根据您提供的模式命名的变量。然后,您遍历所有这些变量,通过名称检索变量并将其制成表格。
更新
根据您最近的更改,我将执行以下操作:
allV <- lapply(ls(pattern = "^part.*"), get) #stores all part variables in a list
combined.df <- do.call(rbind, allV) # rbinds all of them
我想知道如何在我的 R 参数中包含满足特定命名要求的每个对象。假设这些对象都被称为这样的东西
var01 var02 var03 var04 varnn
例如,我在 Stata 中会做的就是这样
tab1 var*
它会用前 3 个字母 "var" 将每个变量制成表格。
在这个 post 的早期版本中,我对我在我的 R 项目中真正想做什么很含糊。所以就这样吧。我有一个 for 循环,它迭代了 650 个实例,目标是为这些实例中的每一个附加 6 个数据集。然而,对于某些人(我不知道是哪个),并非所有 6 个数据集都存在,这就是为什么这样写的 rbind 命令失败的原因:
rbind(data01, data02, data03, data04, data05, data06)
因此我想 运行 这样的事情
rbind(data*)
以便解释缺失的数据集。 很抱歉造成混淆,我最初写问题时不够清楚。
仅供参考,这是整个循环:
for(i in 1:650){
try(part1 <- read.csv(file = paste0("Twitter Scrapes/searchTwitter/09July/",MP.ID[i],".csv")))
try(part2 <- read.csv(file = paste0("Twitter Scrapes/userTimeline/08July/",MP.ID[i],".csv")))
try(part3 <- read.csv(file = paste0("Twitter Scrapes/userTimeline/16July/",MP.ID[i],".csv")))
try(part4 <- read.csv(file = paste0("Twitter Scrapes/searchTwitter/17July/",MP.ID[i],".csv")))
try(part5 <- read.csv(file = paste0("Twitter Scrapes/userTimeline/24July/",MP.ID[i],".csv")))
try(part6 <- read.csv(file = paste0("Twitter Scrapes/searchTwitter/24July/",MP.ID[i],".csv")))
allParts <- ls(pattern = "^part*")
allNames <- paste(allParts, collapse = ", ") # this is just what I tried just now, didn't work though
combined.df <- rbind(ALL THE DATASETS WITH PART))
}
数据
var01 <- sample(2, 10, TRUE)
var02 <- sample(2, 10, TRUE)
var03 <- sample(2, 10, TRUE)
vvv01 <- sample(2, 10, TRUE) # variable which should not be tabulated
代码
allV <- ls(pattern = "^var.*") # vector of all variables starting with 'var'
lapply(allV, function(.) table(get(.)))
说明
使用 ls
您可以获得所有根据您提供的模式命名的变量。然后,您遍历所有这些变量,通过名称检索变量并将其制成表格。
更新
根据您最近的更改,我将执行以下操作:
allV <- lapply(ls(pattern = "^part.*"), get) #stores all part variables in a list
combined.df <- do.call(rbind, allV) # rbinds all of them