我有大量的数据帧。这些数据框通常命名为testing_someName_coo
,testing_someName_csr
和testing_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
如果不手动执行此操作,最好的方法是什么。