更多的'感覺應該是'簡單的東西,這似乎正在逃避我今天。預先感謝您的幫助。R:將數據框添加到基於公式的數據框列表
在一個循環內,這是一個函數,我試圖添加一個列,並根據公式命名。
我可以綁定一個列&其名稱是從綁定對象採取:data<-cbind(data,bothdata)
我可結合柱&手動命名綁定對象:data<-cbind(data,newname=bothdata)
我可以結合一列這是產品方程的&手動命名綁定對象:data<-cbind(data,newname2=bothdata-1)
或者另一種方式:data <- transform(data, newColumn = bothdata-1)
我不能做的是名稱是公式的產物。我的實際公式導出的示例名稱爲paste("E_wgt",rev(which(rev(Esteps) == q))-1,"%")
&等式爲列:baddata - q
。
更簡單的一個:data<-cbind(data,paste("magic",100,"beans")=bothdata-1)
。這是因爲cbind
不希望=
,即使它在前面的示例中沒有問題。 transform
也一樣失敗。
我首先想到的是assign
,但同時我用這個成功創建forumla命名的對象,我看不出如何讓它式命名列工作。
如果我使用一箇中間步驟把命名式中的對象容器,然後使用該,例如:
name <- paste("magic",100,"beans")
data<-cbind(data,name=bothdata-1)
列名是「名稱」不是「magic100beans」。如果我assign
公式結果的公式命名對象:
assign(paste("magic",100,"beans"),bothdata-1)
然後嘗試cbind經由get
:
data<-cbind(data,get(paste("magic",100,"beans")))
列被稱爲 「弄(粘貼(」 魔法」,100, 「豆」))」。噓!任何想法的人?在我看來,我可以做cbind
然後單獨colnames(data)[ncol(data)] <- paste("magic",100,"beans"))
,我想我現在會解決,但仍然有興趣找到是否有直接的方法。
謝謝。
這可能會幫助你知道'data $ col1'與'data [,「col1」]'相同,如果'x'是'「col1」',它與'data [,x]'相同。這是我通常以編程方式訪問/設置列的方式。 –
另一種方法是使用'setNames'或'''名稱< - \''設置名稱。 –
謝謝安託萬。我仍然不知道如何使用[,x]而不是$ x來設置名稱... –