我正在使用 R,需要重新编码列表中的一些变量。名单如下:
> list1
Group.1 x
1 4000
2 3890
在 Group.1
的哪个位置我想替换 1
的任何实例与 male
,和2
与 female
.
我尝试使用replace()函数来做到这一点:
replace(list1,list1$Group.1 == "1", "male")
返回
Group.1 x
male 4000
male 3890
也就是说,它也取代了 Group.1 == 2
与男性。我是不是漏掉了一步?据我使用替换功能所见 - Group.1 == 1
应将替换命令限制为 Group.1
中的值等于 1。看来这个标准没有做任何事情。
最佳答案
replace
对向量进行操作,而不是对 data.frames 进行操作。试试这个:
> replace(df$Group.1,df$Group.1 == 1, "male")
[1] "male" "2"
要更改数据,您可以执行以下操作:
> df$Group.1 <- replace(df$Group.1,df$Group.1 == 1, "male")
> df
Group.1 x
1 male 4000
2 2 3890
您正在尝试执行的操作看起来像是具有级别 c("male", "female")
的 factor
列的良好应用程序。
关于Replace() 函数重新编码整个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30569716/