R召回变量名称

时间:2014-05-10 08:56:37

标签: r variables

我想创建几个存储数据的表。 我做了以下事情:

x<-mydata
splitted<-split(x[,1],x[,2])

#Create my function for the tables
fxdata<-function(){
y.row=c("0","1","2","3","4","5")
yy=c(rep(0,6))
w=data.frame(A3=yy,A2=yy,A1=yy,A0=yy)
rownames(w)<-y.row}

#Create the tables
xx<-NULL
for (i in 1:dim(x)[2]){
assign(paste("xx",i,sep=""),fxdata())}

所以,我创建了例如3个表:xx1,xx2和xx3。现在我必须填充表格,在这里我遇到了问题。我不知道如何在循环中调用xx1,xx2或xx3。想法是在前一个中插入跟随循环,以填充所有表。

 #Populate the table
 for (ii in 1:length(splitted[[1]]{
 #IF 0
 if (splitted[[1]][ii] == "0"){
 y[1,4]=y[1,4]+1}
 #IF A0
 if (splitted[[1]][ii] == "1A0"){
 y[2,4]=y[2,4]+1}
 if (splitted[[1]][ii] == "2A0"){
 y[3,4]=y[3,4]+1}
 if (splitted[[1]][ii] == "3A0"){
 y[4,4]=y[4,4]+1}
 ...}

问题是:为了引用xx1,xx2或xx3,我必须在最后一个循环中代替“y”编写?我想写一些类似的东西:

for (i in 1:3) {
xxi<-1}

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

正如罗兰所说,做这样的事情:

mydata<-list(xx1,xx2,xx3)
 for (j in names(mydata)) {
   mydata$j <- [your function stuff]
}

通过switch

,您所写的内容(btw)要好得多