我想创建几个存储数据的表。 我做了以下事情:
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}
感谢您的任何建议。
马
答案 0 :(得分:0)
正如罗兰所说,做这样的事情:
mydata<-list(xx1,xx2,xx3)
for (j in names(mydata)) {
mydata$j <- [your function stuff]
}
通过switch