Изменить или сохранить значение определенного столбца, учитывая значение в той же строке и другом столбце - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу знать, как изменить или сохранить значение определенного столбца, учитывая значение в той же строке и другом столбце.

Вот мой набор данных с именем (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, вставьте «0» в df$BLUPISM_rate;
  • Если 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 голосов
/ 26 сентября 2018

BLUPISM_rate - это существующий столбец во фрейме данных df, который можно изменить в соответствии с другим столбцом BLUP_pop на основе условия, используя ifelse.

mutate - это функция в dplyr пакет для выполнения манипуляций в существующих или новых столбцах в заданном фрейме данных

# ifelse(condition,TRUE,FALSE)

library(dplyr)

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

    print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...