2014-03-31 51 views
0

假設我有一個向量x=c(3,2,1)。我有一個數據幀d。我想在該數據框中添加一列,以便如果x取值3,則新列取值1,否則取值爲0。它可以通過使用簡單的「ifelse」來完成。但我的問題是,我想將新的向量名稱設置爲「var_3」(不含引號),我將從x[1]中提取這個3使用R向量中的值

我曾嘗試:

d$paste("var",x[1],sep="_")=ifelse(d$x==x[1],1,0) 

它給我的錯誤:分配的目標擴大到非語言對象。因爲粘貼給我我想要的var_3但用引號。我也嘗試了noquotes,但沒有運氣。

回答

1

這不會與$運營商,但與[下標操作者的工作:

d[, paste("var", x[1], sep="_")] <- ifelse(d$x == x[1], 1, 0)