我正在使用Version版本1.0.143。
我想要建立一个新的数据框架,它只包括至少两个数据帧所共有的行,来自多个数据帧。问题是:我必须知道公共数据在哪里!
我正在尝试使用下面的代码,但是有些值被认为是不常见的!
library (readxl)
library(tidyverse)
df1 <- read_excel("Sample 1.xlsx")
df2 <- read_excel("Sample 2.xlsx")
df3 <- read_excel("Sample 3.xlsx")
lst(df1,df2,df3) %>%
bind_rows(.id='df') %>%
filter(GENE %in% unique(GENE[duplicated(GENE)])) %>%
mutate(df2=df) %>%
spread(df,df2) -> final该示例如下:
data.frame 1
SITE GENE
UTR3 MRPL30
UTR3 CASP10
exonic PPIL3
UTR3 ZNF154
exonic MET10
UTR3 CRCP
UTR3 CYP20A1
UTR3 PDDC1
UTR3 MET10data.frame 2
SITE GENE
UTR3 ZNF154
UTR3 MET10
UTR3 EFHC1
UTR3 SLC11A2
UTR3 SNX22
UTR3 MET10data.frame 3
SITE GENE
UTR3 KIAA1143
UTR3 AAK1
UTR3 EFHC1
UTR3 MET10
UTR3 METTL7A
UTR3 MET10结果:
最终
Site Gene df1 df2 df3
UTR3 KIAA1143 NA NA df3
UTR3 AAK1 NA NA df3
UTR3 ZNF154 df1 df2 NA
UTR3 MET10 df1 NA NA
UTR3 MET10 NA df2 NA
UTR3 MET10 NA NA df3.(下表继续)
正如您所看到的,在所有示例中都存在MET10,但是代码没有给出正确的结果!
我预期会有以下情况:
Site Gene df1 df2 df3
UTR3 KIAA1143 NA NA df3
UTR3 AAK1 NA NA df3
UTR3 ZNF154 df1 df2 NA
UTR3 MET10 df1 df2 df3.(下表继续)
发布于 2018-06-26 14:31:29
library(tidyverse)
lst(df1,df2,df3) %>%
bind_rows(.id='df') %>%
filter(V1 %in% unique(V1[duplicated(V1)])) %>%
mutate(df2=df) %>%
spread(df,df2)
# V1 df1 df2 df3
# 1 A df1 df2 df3
# 2 B df1 df2 df3
# 3 G <NA> df2 df3
# 4 H <NA> df2 df3数据
df1 <- read.table(header=F,stringsAsFactors=FALSE,text="
A
B
C
D")
df2 <- read.table(header=F,stringsAsFactors=FALSE,text="
A
B
G
H")
df3 <- read.table(header=F,stringsAsFactors=FALSE,text="
A
B
G
H")https://stackoverflow.com/questions/51044885
复制相似问题