R用另一个数据表中的字符替换一个值



我在R中遇到了一些关于替换编码的问题。

这是原始的data.table。有两个数据表:

dt1 <- data.table(V1 = c(1,"A"))
dt2 <- data.table("1" = c(4,5,6), "A" = c("c","d","e"))

现在我想通过匹配关系将dt1中的值替换为dt2中的值。

期望的输出应该是:

dt3 <- data.table(V1 = c("4,5,6", "c,d,e"))

也就是说,我想将dt1中的值替换为dt2中对应列中的所有值。这是一个简单的例子,我想把它应用到整个数据中。

我在处理这件事上遇到了很大的麻烦,所以请帮助我。

这是一种从输入到期望输出的方法。

dt1[, V1 := sapply(dt2, paste, collapse = ',')[V1]]

# Test
all.equal(dt1, dt3)
[1] TRUE

p。您确定在字符串中存储以逗号分隔的值是最好的方法吗?

我们可以这样做

dt1[, V1  := unlist(lapply(V1, function(x) toString(dt2[[x]])))]
dt1
V1
1: 4, 5, 6
2: c, d, e

相关内容

  • 没有找到相关文章

最新更新