gpt4 book ai didi

r - 将三个数据框的内容合并到 R 中的一列(跨多列)

转载 作者:行者123 更新时间:2023-12-02 06:26:52 25 4
gpt4 key购买 nike

我面临的挑战比我在这里意识到的要大:Merge contents from three dataframes into one column ,因此我的新问题。我有以下三个数据框。

 df1 <- data.frame(c("A", "B", "C", "D"), 
c("text1", "texta", "textk", "textx"),
c("texti", "textI", "texti", "textI"))
names(df1) <- c('dummy_1', 'dummy_2', 'dummy_3')
df2 <- data.frame(c("A", "B", "C", "D"),
c("text2", "textb", "textl", "texty"),
c("textii", "textII", "textii", "textII"))
names(df2) <- c('dummy_1', 'dummy_2', 'dummy_3')
df3 <- data.frame(c("A", "B", "C", "D"),
c("text3", "textc", "textm", "textz"),
c("textiii", "textIII", "textiii", "textIII"))
names(df3) <- c('dummy_1', 'dummy_2', 'dummy_3')

如何将 dfs df1df2df3 中每一列 dummy_2 和每一列 dummy_3 的文本合并为一列,分开通过“\n”?所以期望的结果是这个 data.frame:

 dummy_1    dummy2_merge                 dummy3_merge
A text1 \n text2 \n text3 texti \n textii \n textiii
B texta \n textb \n textc textI \n textII \n textIII
C textk \n textl \n textm texti \n textii \n textiii
D textx \n texty \n textz textI \n textII \n textIII

感谢您的任何建议。

最佳答案

使用data.table合并替换

library(data.table)

setDT(df1);setDT(df2);setDT(df3)

df1[df2, on = .(dummy_1), `:=` (dummy_2 = paste0(dummy_2, ' \n ', i.dummy_2),
dummy_3 = paste0(dummy_3, ' \n ', i.dummy_3))][]
df1[df3, on = .(dummy_1), `:=` (dummy_2 = paste0(dummy_2, ' \n ', i.dummy_2),
dummy_3 = paste0(dummy_3, ' \n ', i.dummy_3))][]

导致

   dummy_1                 dummy_2                    dummy_3
1: A text1 \n text2 \n text3 texti \n textii \n textiii
2: B texta \n textb \n textc textI \n textII \n textIII
3: C textk \n textl \n textm texti \n textii \n textiii
4: D textx \n texty \n textz textI \n textII \n textIII

关于r - 将三个数据框的内容合并到 R 中的一列(跨多列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57219846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com