【发布时间】:2017-05-31 16:33:32
【问题描述】:
所以我正在使用 R 并尝试通过比较两列来更改一列中数据框中的值。我有类似的东西
Median MyPrice
10 0
20 18
20 20
30 35
15 NA
我想说一些类似的话
if(MyPrice == 0 & MyPrice < Median){MyPrice <- 1
}else if (MyPrice == Median){MyPrice <- 2
}else if (MyPrice > Median){MyPrice <- 3
}else {MyPrice <- 4}
想出办法
Median MyPrice
10 1
20 1
20 2
30 3
15 4
但总是有错误。我也尝试过类似
for(i in MyPrice){if(MyPrice == 0 & MyPrice < Median){MyPrice <- 1
}else if (MyPrice == Median){MyPrice <- 2
}else if (MyPrice > Median){MyPrice <- 3
}else {MyPrice <- 4}
}
for 循环运行,但它将 MyPrice 中的所有值更改为 4。我也尝试了 ifelse() 函数,但它似乎有一个问题,一次接受这么多参数。
如果这样的解决方案更简单,我也不反对将新列添加到数据框的末尾。
【问题讨论】:
-
如果你的数据结构不是DataFrame这是正常的
-
您可以使用
[运算符访问数据框中的特定元素。试试这个:my_data$MyPrice[my_data$MyPrice < my_data$Median & my_data$MyPrice == 0] <- 1
标签: r