我正在尝试向数据框添加新列,如下所示:
stateFrame$cgroup <- ifelse(stateFrame$Freq >= 11 &
stateFrame$Freq < 83, "Other",stateFrame$city)
所以,我想如果行中的频率值介于11和83之间,则必须为新列指定Other
,否则它应保持与另一列city
中存在的值相同的值(stateFrame$city)
。
它可以正常添加other
的值,但对于所有其他情况,分配了与数据框对应的行号,如下所示:
这可能是什么原因?我错过了什么吗?
答案 0 :(得分:1)
我认为ifelse()中的“no”输入应该是一个向量而你的很可能是因素。使用as.vector(stateFrame$city)
,如下所示:
stateFrame$cgroup <- ifelse(stateFrame$Freq >= 11 &
stateFrame$Freq < 83, "Other",as.vector(stateFrame$city))
修改强> 更准确地说,因子被存储为具有相关字符值的整数向量。我认为整数会在你的代码中返回。