如何在R中将2个具有不同行和列号的表组合在一起
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在R中将2个具有不同行和列号的表组合在一起相关的知识,希望对你有一定的参考价值。
我想在R中将两个表组合在一起。表格如下: -
table1
TID Date Time Item
T01 9/1/10 10:00pm Bag
T01 9/1/10 10:00pm Tea
T01 9/1/10 10:00pm Pen
T02 9/1/10 10:50pm Bread
T02 9/1/10 10:50pm Pencil
T03 9/1/10 11:00pm Sausage
T04 9/1/10 11:30pm Fishball
T04 9/1/10 11:30pm Tissue paper
T05 9/1/10 12:05am Battery
table2
PID Name
P001 Jason
P002 Mary
P003 Katie
P004 James
P005 Nelson
P006 Helmi
我希望我能得到的结果是这样的: -
TID Date Time Item PID Name
T01 9/1/10 10:00pm Bag P001 Jason
T01 9/1/10 10:00pm Tea P001 Jason
T01 9/1/10 10:00pm Pen P001 Jason
T02 9/1/10 10:50pm Bread P002 Mary
T02 9/1/10 10:50pm Pencil P002 Mary
T03 9/1/10 11:00pm Sausage P003 Katie
T04 9/1/10 11:30pm Fishball P004 James
T04 9/1/10 11:30pm Tissue paper P004 James
T05 9/1/10 12:05am Battery P005 Nelson
合并取决于table1,如果它是相同的ID,那么它将从table2获取具有相同PID的相同行。另外,我的table2可能没有足够的行用于与table1合并,因此在整个table2消耗之后需要重复使用row。我试过这个但结果却失败了。
合并(table1,table2,by.x = table1 $ TID,by.y = table2 $ PID)
这会给出错误消息“fix.by(by.x,x)中的错误:'by'必须匹配列数”
merge(data.frame(datafile,row.names = NULL),data.frame(salary,row.names = NULL),by = 0,all = TRUE)
这没有提示错误消息,但看起来直到5分钟后才产生结果,并强迫我点击STOP按钮
任何人都知道如何解决这个问题?
答案
你的table1使用TID
,它看起来像T0X
,table2使用PID
,看起来像P00X
。一种方法是在一个表中创建一个列以匹配另一个。
library(dplyr)
table2 = table2 %>% mutate(TID = gsub(pattern = "P0", "T", PID))
left_join(table1, table2, by = "TID")
以上是关于如何在R中将2个具有不同行和列号的表组合在一起的主要内容,如果未能解决你的问题,请参考以下文章
python 使用标题名称和列号的组合选择列,支持通配符,正则表达式,切片,索引和电子表格样式的co
如何合并具有不同列号的两个表,同时删除具有大量列的表的重复项