使用ifelse将新列添加到数据框。为什么要添加数值?

时间:2018-02-24 20:30:26

标签: r dataframe

我正在尝试向数据框添加新列,如下所示:

stateFrame$cgroup <- ifelse(stateFrame$Freq >= 11 & 
                   stateFrame$Freq < 83, "Other",stateFrame$city)

所以,我想如果行中的频率值介于11和83之间,则必须为新列指定Other,否则它应保持与另一列city中存在的值相同的值(stateFrame$city)

它可以正常添加other的值,但对于所有其他情况,分配了与数据框对应的行号,如下所示:

enter image description here

这可能是什么原因?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我认为ifelse()中的“no”输入应该是一个向量而你的很可能是因素。使用as.vector(stateFrame$city),如下所示:

stateFrame$cgroup <- ifelse(stateFrame$Freq >= 11 & 
                   stateFrame$Freq < 83, "Other",as.vector(stateFrame$city))

修改 更准确地说,因子被存储为具有相关字符值的整数向量。我认为整数会在你的代码中返回。