1 Câu hỏi: Làm cách nào để thay thế một cách hiệu quả một bộ giá trị bằng một bộ giá trị khác trong data.table?

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Đây là một tình huống điển hình, khi bạn có hai bộ dữ liệu, trong đó các quan sát giống nhau được đặt tên khác nhau và bạn cần đổi tên một trong số chúng để chúng được gọi là giống nhau trong cả hai bộ, trước khi hợp nhất các bộ này.

Ví dụ sau, rõ ràng không hoạt động:

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]]
};

Hãy giúp đỡ

    
0
  1. Bạn mong đợi gì ở đầu ra của mình?
    2019-05-08 15: 58: 01Z
1 Câu trả lời                              1                         

Kết hợp các giá trị cũ và mới trong data.table khác và thực hiện "phân công tra cứu".

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
nguồn đặt đây
Những câu hỏi khác