我正在使用R中的for循环学习动态名称。要应用,我想提取动态表(table_CA,table_DC)的一些列(相同名称:Name,Pop)。
这是我的尝试:
states <- c("CA", "DC")
for (state in states) {
assign(paste0("final_", state), paste0("table_", state)[,c("Name","Pop")]
}
简单的脚本不起作用。
使用:
paste0("table_", state)[,c("Name","Pop")]
可能是错的,但我不确定如何解决它。
你能就这个问题告诉我吗?谢谢!
答案 0 :(得分:0)
您应该使用get
:
for (state in states) {
assign(paste0("final_", state), get(paste0("table_", state))[, c("Name", "Pop")])
}
当您使用paste0("table_", state))[, c("Name", "Pop")]
时,请尝试从字符(称为实例"final_CA"
)中选择列,而不是从实际对象中选择。也不可能从字符串中选择列,因为字符串没有两个维度。
答案 1 :(得分:0)
我想这就是你想要做的......所以这就是答案 我正在移动所有的名字&#34;和#34; Pop&#34;列到新表&#34; newtable&#34;来自不同的表与州&#34; table_ $ state&#34;状态名称从州到州的名称。
# newtable to get the data out (has the same rows as one of the state tables)
newtable=data.frame(matrix(NA,nrow(table_CA),0))
states <- c("CA", "DC")
# Create a new column in newtable
for (state in states){
eval(parse(text=paste0('newtable[,ncol(newtable)+1] <- table_', state,'[,c("Name","Pop")]')))}