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