如何比较两列

时间:2017-01-25 15:13:55

标签: r

我有两个数据框:

df1

ProductManagement.Events.ProductRegistered
ProductManagement.Events.ProductNameChanged

DF2

 V1              V2
ec:2.7.11.1     hsa:9344
ec:2.7.11.1     hsa:5894
ec:2.7.11.1     hsa:673
ec:2.7.12.2     hsa:5607
ec:2.7.11.24    hsa:5598
ec:2.7.11.25    hsa:9020
ec:2.7.11.24    hsa:51701
ec:2.3.1.250    hsa:64840

我想得到:

 V1             
9344
5607
9020
64840

2 个答案:

答案 0 :(得分:0)

你可以这样做:
数据:

map

然后在比较期间使用df=read.table(text=" V1 V2 ec:2.7.11.1 hsa:9344 ec:2.7.11.1 hsa:5894 ec:2.7.11.1 hsa:673 ec:2.7.12.2 hsa:5607 ec:2.7.11.24 hsa:5598 ec:2.7.11.25 hsa:9020 ec:2.7.11.24 hsa:51701 ec:2.3.1.250 hsa:64840",h=T) df2=read.table(text="V1 9344 5607 9020 64840",h=T) 删除非数字符号。

sub()

答案 1 :(得分:0)

以下是在paste0()

上使用df2$V1的解决方案
df <- read.table(header=TRUE, text=
" V1              V2
ec:2.7.11.1     hsa:9344
ec:2.7.11.1     hsa:5894
ec:2.7.11.1     hsa:673
ec:2.7.12.2     hsa:5607
ec:2.7.11.24    hsa:5598
ec:2.7.11.25    hsa:9020
ec:2.7.11.24    hsa:51701
ec:2.3.1.250    hsa:64840")
df2 <- read.table(header=TRUE, text=
"V1             
9344
5607
9020
64840")
df3 <- data.frame(V2=paste0("hsa:", df2$V1))
merge(df, df3)

或一行:

merge(df, data.frame(V2=paste0("hsa:", df2$V1)))