【发布时间】:2018-10-24 05:34:15
【问题描述】:
我有两个dataframes如下:
df1 <- read.table(text = "Source Signal Target
A no B
B yes C
C no D
D no A
E yes F
F yes G
G no E", header = T)
df2 <- read.table(text = "Source Signal Target
A no B
B yes C
E yes F
F yes G", header = T)
我将df1 和df2 合并:interactions <- merge(df1, df2) 然后我尝试将match 每个Source 和Target 与df3 合并。
df3 <- read.table(text = "Symbol ID Name
A 11 LetterA
C 13 LetterC
D 14 LetterD
F 16 LetterF
G 17 LetterG", header = T)
我得到以下输出:
Source
Symbol ID Name
1 A 11 LetterA
NA <NA> NA <NA>
NA.1 <NA> NA <NA>
4 F 16 LetterF
所以我想replaceNA 与df2 中显示的“原始”输入并获得如下输出:
Symbol ID Name
A 11 LetterA
B NA B
E NA E
F 16 LetterF
我试过了:
Source <- df3[match(interactions$Source, df3$Symbol),-4]
my.na <- is.na(Source$Name)
Source$Name[my.na] <- interactions$Source[my.na]
Source$Symbol[my.na] <- interactions$Source[my.na]
但我得到的是数字而不是字符。有什么我想念的吗? 是否可以在不使用任何库的情况下替换合并值?
【问题讨论】:
标签: r class dataframe types merge