Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 当多个数据集中存在相同的列名时,应使用哪个合并命令进行合并?_R - Fatal编程技术网

R 当多个数据集中存在相同的列名时,应使用哪个合并命令进行合并?

R 当多个数据集中存在相同的列名时,应使用哪个合并命令进行合并?,r,R,三个数据集如下: [Name] [10th] [Mark] Ram ICSE 562 Sam CBSE 589 Deep CBSE 523 [Name] [12th] [Mark] Ram PCM 589 Sam CBZ 689 Deep PCM 563 [Name] [B.Tech] [Mark] Ram Mech 589 Sam Civil 68

三个数据集如下:

[Name]  [10th]  [Mark]
Ram     ICSE    562
Sam     CBSE    589
Deep    CBSE    523

[Name]  [12th]  [Mark]
Ram     PCM     589
Sam     CBZ     689
Deep    PCM     563

[Name]  [B.Tech]    [Mark]
Ram         Mech    589
Sam        Civil    689
Deep          IT    563
我希望输出的格式如下:

[Name]  [10th]  [Mark]  [12th]  [Mark]  [B.Tech]    [Mark]
Ram     ICSE    562      PCM    589        Mech     589
Sam     CBSE    589      CBZ    689        Civil    689
Deep    CBSE    523      PCM    563           IT    563

关于这一点,请帮助我。

我们可以使用
purrr::reduce
dplyr::full\u join

library(tidyverse);
reduce(list(df1, df2, df3), function(x, y) full_join(x, y, by = "Name"))
#  Name X10th Mark.x X12th Mark.y B.Tech Mark
#1  Ram  ICSE    562   PCM    589   Mech  589
#2  Sam  CBSE    589   CBZ    689  Civil  689
#3 Deep  CBSE    523   PCM    563     IT  563 
或在R基中:

Reduce(function(x, y) merge(x, y, by = "Name"), list(df1, df2, df3))
#  Name X10th Mark.x X12th Mark.y B.Tech Mark
#1 Deep  CBSE    523   PCM    563     IT  563
#2  Ram  ICSE    562   PCM    589   Mech  589
#3  Sam  CBSE    589   CBZ    689  Civil  689

样本数据
df1
df1 <- read.table(text =
    "Name   10th     Mark
Ram        ICSE    562
Sam        CBSE    589
Deep    CBSE    523", header = T);

df2 <- read.table(text =
    "Name    12th    Mark
Ram        PCM        589
Sam        CBZ        689
Deep    PCM        563", header = T);

df3 <- read.table(text =
    "Name    B.Tech    Mark
Ram            Mech    589
Sam           Civil    689
Deep          IT    563", header  = T)