0
我有一個數據框,其中第一列是代表某個國家/地區的字符變量,其他列包含一些數字數據。我想爲第一列的名稱添加一個後綴,以表示區域屬於哪個區域。比方說,「NR」前兩個,「BB」從第三到第五位(行會繼續與其他區)使用函數重命名字符變量
D=data.frame("Col1" = c("Levice", "Nitra", "Brezno", "Detva", "Zvolen"),
"Col2" = 1:5, stringsAsFactors=F)
我想,我可以用代碼做到這一點:
D$Col1[1:2]=paste(D$Col1[1:2],"NR", sep=".")
D$Col1[3:5]=paste(D$Col1[3:5],"BB", sep=".")
所以我得到這樣的:
Col1 Col2
Levice.NR 1
Nitra.NR 2
Brezno.BB 3
Detva.BB 4
Zvolen.BB 5
但是,如果我嘗試把代碼放到一個函數,結果不存儲在我的數據幀:
Suffix=function(X1){
D1=(X1=D$Col1[1:2])
paste(D$Col1[1:2],"NR", sep=".")
}
Suffix(D)
"Levice.NR" "Nitra.NR"
,或者如果我修改它,不工作:
Suffix=function(X1){
D1=(X1=D$Col1[1:2])
D$Col1[1:2]=paste(D$Col1[1:2],"NR", sep=".")
}
Suffix(D)
#just nothing happens to the data frame
能否請你幫什麼錯的功能?
我看外面的重新分配,但建議的代碼不出於某種原因。它給出了以下錯誤:「X $ Col1中的錯誤:$運算符對原子向量無效」 – babesz
您是否將原始數據框傳遞給函數? – MrFlick
哎呀,對不起,它可行 - 謝謝!我可以問你在你的函數中做什麼「返回」,以及你如何在X $ Col1的第二行代替D $ Col1?參數(X1)和對象(D1)不應該是太單獨的項目嗎? – babesz