Как объединить два идентичных кадра данных с некоторой заменой значений в одном столбце? - PullRequest
0 голосов
/ 04 июля 2018

У меня тут простая концепция, и мне нужна помощь!

Вот мой код:

Rank <- c(1,2,3,4,5)
ID <- c("Jack", "Tom", "Chloe", "Mary", "Max")

df <- data.frame(ID, Rank)

rankrange <- subset(df, Rank >2)

for (i in 1:nrow(rankrange)){ #revaluing numbers 3,4,5 with NA
  rankrange[i,2] <- "NA"
}

    ID   Rank
3 Chloe   NA
4  Mary   NA
5   Max   NA

Как мне объединить df & rankrange так, чтобы значения для Хлои, Мэри и Макс заменены на NA в df?

Я надеюсь получить этот результат:

    ID   Rank
1 Jack    1
2 Tom     2
3 Chloe   NA
4  Mary   NA
5   Max   NA

Я думаю, что этого можно достичь с помощью функции, но я не знаю, какой! Спасибо!

Редактировать

Я пытаюсь понять, что происходит, если у меня есть два одинаковых кадра данных, но есть различия в значениях для одного столбца. Какую функцию я могу использовать, чтобы объединить эти два кадра данных вместе, чтобы значения были заменены?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Это то, что вы ищете?

df$Rank <- ifelse(df$Rank > 2, NA, df$Rank)

     ID Rank
1  Jack    1
2   Tom    2
3 Chloe   NA
4  Mary   NA
5   Max   NA
0 голосов
/ 04 июля 2018

На что именно вы надеетесь, пока неясно, но вот пример, который подходит вашим данным:

rbind(
  df[!df$ID %in% rankrange$ID, ], 
  rankrange
)

     ID Rank
1  Jack    1
2   Tom    2
3 Chloe   NA
4  Mary   NA
5   Max   NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...