我有两个数据框:
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
答案 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)))