在R中使用字符串作为变量

时间:2016-10-25 17:24:11

标签: r

我有大量的数据帧。这些数据框通常命名为testing_someName_cootesting_someName_csrtesting_someName_hyb。这里someName代表不同的名称。大约有50个名字。

这些文件的内容如下

V1     V2
Alice  some value  
Bob    some value
 .
 .
Ross   some value

第二和第三数据帧也包含相同格式的记录。第一列V1在所有三个数据帧中都是相同的。我最初想要重命名所有三个数据帧中的列,并在第一列的基础上组合它们。因此我写了以下代码:

colnames(testing_someName_coo) <- c("name", "coo")
colnames(testing_someName_csr) <- c("name", "csr")
colnames(testing_someName_dia) <- c("name", "dia")
temp1 <- merge(testing_someName_coo,testing_someName_csr,by= "name")
temp1 <- merge(temp1,testing_someName_hyb,by= "name")

这很好用,但由于我有大量的数据集,我想我会编写一个函数,将someName作为参数传递并执行上述功能。所以我写了下面的代码:

mergetiming <- function(name){
colnames(as.name(paste("testing",name,"coo",sep= "_"))) <- c("name", "coo")
colnames(as.name(paste("testing",name,"csr",sep= "_"))) <- c("name", "csr")
colnames(as.name(paste("testing",name,"dia",sep= "_")) <- c("name",   "dia")
//merge commannd here as before but using as.name(paste("testing",name,"dia",sep= "_")
}

但后来我收到错误

Error in colnames(as.name(paste("testing", name, "coo", sep = "_"))) <- c("name",  : 
 target of assignment expands to non-language object

如果不手动执行此操作,最好的方法是什么。

0 个答案:

没有答案