0
私は、最初の列が国の地区の文字変数であり、他の列が数値データを含むデータフレームを持っています。最初の列の名前に接尾辞を付けて、地区が属している地域を示したいと思います。のは、最初の2に「NR」と言ってみましょう、「BB」から5番目の3分の1(行は他の地区で続けることができる)関数を使用して文字変数の名前を変更する
D=data.frame("Col1" = c("Levice", "Nitra", "Brezno", "Detva", "Zvolen"),
"Col2" = 1:5, stringsAsFactors=F)
私は、コードでこれを行うことができることを考え出し:
私は関数にコードを配置しようとした場合、結果は私のデータフレームに格納されていない、しかし、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の2行目のD $ Col1をどうやって入れ替えることができますか?引数(X1)とオブジェクト(D1)はあまりにも別々の項目ではないでしょうか? – babesz