考虑同一行和另一列中的值,更改或保留特定列的值

时间:2018-09-25 18:21:13

标签: r

考虑到同一行和另一列中的值,我想知道如何更改或保留特定列的值。

这是我的数据集,名为(df):

          BLUP_pop          BLUPISM_rate
    1   1.94693747            1.00000000
    2   1.33774978            0.68710465
    3   1.04724481            0.78284058
    4   0.95897119            0.91570871
    5   0.75524367            0.78755616
    6   0.44728346            0.59223728
    7   0.35502008            0.79372504
    8   0.29392675            0.82791585
    9   0.26649710            0.90667862
    10  0.15827465            0.59390759
    11 -0.00630328           -0.03982495
    12 -0.21526737           34.15164327

我想陈述以下规则:

  • 如果为df$BLUP_pop <= 0,则在df$BLUPISM_rate中粘贴“ 0”;
  • 如果为df$BLUP_pop >= 0,则保留该值。

          BLUP_pop          BLUPISM_rate
    1   1.94693747            1.00000000
    2   1.33774978            0.68710465
    3   1.04724481            0.78284058
    4   0.95897119            0.91570871
    5   0.75524367            0.78755616
    6   0.44728346            0.59223728
    7   0.35502008            0.79372504
    8   0.29392675            0.82791585
    9   0.26649710            0.90667862
    10  0.15827465            0.59390759
    11 -0.00630328            0
    12 -0.21526737            0

谢谢。

1 个答案:

答案 0 :(得分:0)

BLUPISM_rate是数据框df中的现有列,可以根据条件使用BLUP_pop根据其他列ifelse进行修改。

mutatedplyr包中的一个函数,用于在给定数据帧中的现有或新列中进行操作

# ifelse(condition,TRUE,FALSE)

library(dplyr)

    df <- df %>%
        mutate(
         BLUPISM_rate = ifelse(BLUP_pop <= 0 , 0 , BLUPISM_rate)
        )

    print(df)