0
我想創建幾個表,我的數據存儲在其中。 我做了如下:R召回變量名稱
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}
...}
的問題是:我有什麼到位「Y」的寫在最後一個循環,以指代XX1,XX2 XX3或?我想寫這樣的東西:
for (i in 1:3) {
xxi<-1}
謝謝你的任何意見。
馬爾科
你可以檢查在循環的開始如果xxi爲'nrow(xxi)== 0',如果爲TRUE,'assign('xxi',yourdata)'FALSE'assign('xxi',rbind(get('xxi),yourdata))' – OdeToMyFiddle
I不要得到你想要做的,你的代碼是不可重現的。但我確定你不應該需要'assign'和'for'(只有高級R用戶纔有'assign'的合法用例,對初學者來說這只是代碼寫得不好的標誌,通常他們應該只用一個列表)。 – Roland