操作数据框列,使前25%的行包含值R

时间:2018-05-17 15:09:55

标签: r loops for-loop dataframe

我在R中有一个数据帧(称为“df”),我创建了一个新列(称为“col”),当前填充了NA。 df中还有另一个列称为risk,我已经对数据帧进行了排序,因此风险最高的行位于顶部。

我希望前25%的列(因此风险最高25%)在其中包含单词“x”,而另外75%的列包含“y”。我想我需要一个for循环才能做到这一点,但有人可以用这个来取悦我。

1 个答案:

答案 0 :(得分:2)

您可以使用ifelse

执行此操作
ifelse(df$risk > quantile(df$risk, 0.75), "x", "y")

如果要将其保存到data.frame中,请使用

df$col = ifelse(df$risk > quantile(df$risk, 0.75), "x", "y")