【发布时间】:2016-08-26 00:43:39
【问题描述】:
我是 R 新手,也是 stackoverflow 新手。我试图找出 data.table 并查看“R data.table 替换另一个 data.table 中的值索引”,并认为我理解但无法得到我想要的。
我有两个数据框——第一个是我感兴趣的数据,第二个是包含名称/ID 的键,用于转换第一个数据框中的 ID。我想使用“key”data.table 将table$id1 和table$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)]
我已经做到了这一点(table$id1 中名称的替换值),但无法弄清楚如何在不更改列名、重置键并为 id2 重新执行上述相同步骤的情况下更改 id2。在真实数据集中,会有多个 Sally's、John's 等,我希望代码使用相同的键“翻译”两列。
希望代码使用 data.table(用于学习目的),但如果有另一个包可以做得更好,那也很棒。谢谢!
【问题讨论】:
标签: r data.table