1 Вопрос: Как эффективно заменить один набор значений другим набором значений в data.table?

вопрос создан в Wed, May 8, 2019 12:00 AM

Это типичная ситуация, когда у вас есть два набора данных, в которых одни и те же наблюдения называются по-разному, и вам необходимо переименовать одно из них, чтобы они назывались одинаковыми в обоих наборах до объединения этих наборов. р>

Следующий пример, очевидно, не работает:

dt <- data.table( chapter=as.character(11:15) );dt
in_old_set <- c("12", "11", "14", "15")
in_new_set <- c("11", "12", "15", "16")

for(i in 1:length(in_old_book)) {
 dt[chapter == in_old_set[i], chapter:= in_new_book[i]]
};

Пожалуйста, помогите

    
0
  1. Что вы ожидаете получить в качестве вывода?
    2019-05-08 15: 58: 01Z
1 ответ                              1                         

Объедините старые и новые значения в другом data.table и выполните «поиск».

replacements <- data.table(
  old = c("12", "11", "14", "15"),
  new = c("11", "12", "15", "16")
)

dt[
  replacements,
  on = c(chapter = "old"),
  chapter := new
]

dt
#    chapter
# 1:      12
# 2:      11
# 3:      13
# 4:      15
# 5:      16
    
1
2019-05-08 17: 38: 46Z
источник размещен Вот