見下文: paste("perf.a", "1", sep="") [1] "perf.a1"如果我要給賦值perf.a1怎么辦?我嘗試了as.name,as.symbol等等,但無濟于事:as.name(paste("perf.a", "1", sep="")) = 5Error in as.name(paste("perf.a", "1", sep = "")) = 5 : target of assignment expands to non-language objectas.symbol(paste("perf.a", "1", sep="")) = 5Error in as.symbol(paste("perf.a", "1", sep = "")) = 5 : target of assignment expands to non-language objectnoquote(paste("perf.a", "1", sep="")) = 5Error in noquote(paste("perf.a", "1", sep = "")) = 5 : target of assignment expands to non-language object
3 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
您可以使用assign(doc)更改perf.a1的值:
> assign(paste("perf.a", "1", sep=""),5)
> perf.a1
[1] 5

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
在我的情況下,我創建的符號(Tax1,Tax2等)已經具有值,但是我想使用循環并將符號分配給另一個變量。因此,以上兩個答案給了我實現此目標的方法。這可能有助于回答您的問題,因為可以在以后隨時進行值的分配。
output=NULL
for(i in 1:8){
Tax=eval(as.symbol(paste("Tax",i,sep="")))
L_Data1=L_Data_all[which(L_Data_all$Taxon==Tax[1] | L_Data_all$Taxon==Tax[2] | L_Data_all$Taxon==Tax[3] | L_Data_all$Taxon==Tax[4] | L_Data_all$Taxon==Tax[5]),]
L_Data=L_Data1$Length[which(L_Data1$Station==Plant[1] | L_Data1$Station==Plant[2])]
h=hist(L_Data,breaks=breaks,plot=FALSE)
output=cbind(output,h$counts)
}
- 3 回答
- 0 關注
- 1644 瀏覽
添加回答
舉報
0/150
提交
取消