Replace() 函数重新编码整个列

标签 r replace

我正在使用 R,需要重新编码列表中的一些变量。名单如下:

> list1

Group.1     x
1        4000    
2        3890

Group.1 的哪个位置我想替换 1 的任何实例与 male ,和2female .

我尝试使用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/

相关文章:

r - 根据列关系创建数组

r - 根据唯一日期计算记录

javascript - 替换文本中的数字

r - 查找与多个值对应的因子

replace - 如何在 VBScript 中使用替换功能

r - 警告 : unable to access index for repository internet routines cannot be loaded

r - 等待文件存在

r - 使用其他自变量的所有可能组合获取许多模型中特定变量的 p 值

python - 将Python字典的值写回文件

regex - 在两个字符串Powershell之间替换文本