R语⾔中实现数据的匹配与合并1、merge函数
dir()
test1 <- read.table("", header = F)
test1
test2 <- read.table("", header = F)
test2
result <- merge(test1, test2, by.x = "V1", by.y = "V1")
result
result2 <- merge(test1, test2, by.x = "V1", by.y = "V1", sort = F)
result2
> dir()    ## 列出当前⼯作路径下的⽂件
[1] """"
> test1 <- read.table("", header = F)  ## 读取测试数据test1
> test1
V1 V2
11590
24300
33500
44100
51080
66300
74240
82650
94280
> test2 <- read.table("", header = F)  ## 读取测试数据test2
> test2
V1 V2
143066
263044
326588
410822
535077
642499
741033
815911
942855
> result <- merge(test1, test2, by.x = "V1", by.y = "V1")  ## 利⽤merge进⾏合并,指定合并依据的列名,默认合并后并进⾏排序> result
V1 V2.x V2.y
1108022
2159011
3265088
4350077
merge函数
5410033
6424099
7428055
8430066
9630044
> result2 <- merge(test1, test2, by.x = "V1", by.y = "V1", sort = F) ## 利⽤sort = F选项设定匹配合并后不排序
> result2
V1 V2.x V2.y
1159011
2430066
3350077
4410033
5108022
6630044
7424099
8265088
9428055
2、match函数实现
dir()
test1 <- read.table("", header = F)
test1
test2 <- read.table("", header = F)
test2
result <- test2[match(test1$V1, test2$V1),]
result
> dir()
[1] """"
> test1 <- read.table("", header = F)  ## 读取测试数据
> test1
V1 V2
11590
24300
33500
44100
51080
66300
74240
82650
94280
> test2 <- read.table("", header = F)
> test2
V1 V2
143066
263044
326588
410822
535077
642499
741033
815911
942855
> result <- test2[match(test1$V1, test2$V1),]  ## 利⽤match函数匹配,返回索引,利⽤索引提取指定数据
> result
V1 V2
815911
143066
535077
741033
410822
263044
642499
326588
942855
3、shell实现
root@PC1:/home/test2# ls
root@PC1:/home/test2#
1590
4300
3500
4100
1080
6300
4240
2650
4280
root@PC1:/home/test2#
43066
63044
26588
10822
35077
42499
41033
15911
42855
root@PC1:/home/test2# | while read {i,j}; do grep -w "$i" >> ; done  ## 利⽤while循环 + grep命令实现root@PC1:/home/test2# ls
<   
root@PC1:/home/test2#
15911
43066
35077
41033
10822
63044
42499
26588
42855

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。