我是新来的R和新的stackoverflow。我试图找出data.table,并看着“R data.table替换另一个data.table的值的索引”,并认为我明白,但不能得到我想要的。R data.table替换多个列中的值
我有两个数据框 - 第一个是我感兴趣的数据,第二个是包含名称/ ID的键,用于转换第一个数据框中的ID。我想使用“key”data.table将表$ id1和表$ id2中的数字转换为“key”data.table中的“Names”。下面是我到目前为止管理:
table<-data.table("Sample" = sample(40:46, 6), "Conc1" = sample(100:106,6),
"id1" = as.character(sample(1:6, 6)), "Conc2" = sample(200:206,6),
"id2" = as.character(sample(1:6, 6)))
key<-data.table("Name" = c("Sally", "John", "Roger", "Bob", "Kelsey", "Molly"),
"id1" = as.character(1:6))
setkey(table, id1)
setkey(key, id1)
table[key, `:=`(id1 = i.Name)]
到目前为止,我已经得到了这个(取代值表$ ID1名),但无法弄清楚如何也改变ID2不改变的列名,重置按键并重新为id2执行上述同样的步骤。在真实的数据集中,会有多个Sally's,John's等,我希望代码使用相同的密钥“翻译”两列。
希望代码使用data.table(用于学习目的),但是如果有另一个包可以做得更好,那也会很棒。谢谢!