Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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_Merge - Fatal编程技术网

R合并具有一个标识符的表,其他具有相同名称的列将相加

R合并具有一个标识符的表,其他具有相同名称的列将相加,r,merge,R,Merge,我目前有多个表需要合并。例如,我有tbl_1、tbl_2和tbl_3。我想以结果表的形式得出最终结果 tbl_1: ID trx_1 Cre_counts Deb_counts 1 10 9 8 2 5 6 5 3 10 4 3 tbl_2: ID trx_2 Unk_counts Deb_counts 1 10 1 2 2 5

我目前有多个表需要合并。例如,我有tbl_1、tbl_2和tbl_3。我想以结果表的形式得出最终结果

tbl_1:
ID  trx_1  Cre_counts Deb_counts 
1    10        9        8
2    5         6        5
3    10        4        3

tbl_2:
ID  trx_2  Unk_counts Deb_counts 
1    10       1        2
2    5        6        5
3    10       3        7

tbl_3:
ID  trx_3  Unk_counts Ckc_counts 
1    3        4        4
2    2        4        3
3    8        7        6

result:
ID  trx_1  tx_2 trx_3 Cre_counts Deb_counts Unk_counts Ckc_counts 
1    10     10      3         9        10       5           4
2    5      5       2         6        10       10          3
3    10     10      8         4        10       10          6

我尝试通过“ID”合并三个表,但列名将更改为Deb_counts.x,Deb_counts.y。。。我可以使用transform()、rowSums()来采取一些额外的步骤使其工作。但我想知道有没有更简单的方法?谢谢大家!

也许不是最优雅的,但这里有一个方法:

首先,您需要将表放入列表中:

l_tbl <- mget(ls(pattern="^tbl"))

也许不是最优雅的,但这里有一个方法:

首先,您需要将表放入列表中:

l_tbl <- mget(ls(pattern="^tbl"))

你不只是想合并,你想合并一些值并添加其他值,你需要至少分两步进行,我理解这一点。目前,我采取的步骤不止两个。我将首先合并所有表,然后使用rowSums()添加所有要添加的列。然后,删除旧列。只是想知道你有没有更简单的方法?也许只有两个步骤。嗨,希望这个链接有帮助,几乎相同的问题。嗨,温。谢谢你的链接。它以前确实检查过那个网站。问题是我的行号不一样。发布的解决方案对我不起作用。但我会继续修改。我发布了一个两步的方法,虽然第二步有点长…你不只是想合并,你想合并一些值并添加其他值,你需要至少两步进行,我明白。目前,我采取的步骤不止两个。我将首先合并所有表,然后使用rowSums()添加所有要添加的列。然后,删除旧列。只是想知道你有没有更简单的方法?也许只有两个步骤。嗨,希望这个链接有帮助,几乎相同的问题。嗨,温。谢谢你的链接。它以前确实检查过那个网站。问题是我的行号不一样。发布的解决方案对我不起作用。但我会继续修改。我发布了一个两步方法,尽管第二步有点长……我在x[,colu_com]+y[,colu_com]:二进制运算符的非数值参数中出错。不知道原因。第一步是好的。我忘了提。并非每两个表都有相同的列名,所以有时,col_com将是字符(0)。这就是问题的原因吗?@verasao这不会是问题,因为我检查col_com是否至少有一个长度。我不知道你为什么会出错,除非你的公共列不全是数字。我在x[,col_com]+y[,col_com]:二进制运算符的非数字参数中出错。不知道原因。第一步是好的。我忘了提。并非每两个表都有相同的列名,所以有时,col_com将是字符(0)。这就是问题的原因吗?@verasao这不会是问题,因为我检查col_com是否至少有一个长度。我不知道你为什么会出错,除非你的公共列不全是数字