首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在三个或多个数据文件之间查找公共值

在三个或多个数据文件之间查找公共值
EN

Stack Overflow用户
提问于 2018-06-26 14:05:51
回答 1查看 828关注 0票数 0

我正在使用Version版本1.0.143。

我想要建立一个新的数据框架,它只包括至少两个数据帧所共有的行,来自多个数据帧。问题是:我必须知道公共数据在哪里!

我正在尝试使用下面的代码,但是有些值被认为是不常见的!

代码语言:javascript
复制
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

代码语言:javascript
复制
SITE    GENE
UTR3    MRPL30
UTR3    CASP10
exonic  PPIL3
UTR3    ZNF154
exonic  MET10
UTR3    CRCP
UTR3    CYP20A1
UTR3    PDDC1
UTR3    MET10

data.frame 2

代码语言:javascript
复制
SITE    GENE
UTR3    ZNF154
UTR3    MET10
UTR3    EFHC1
UTR3    SLC11A2
UTR3    SNX22
UTR3    MET10

data.frame 3

代码语言:javascript
复制
SITE    GENE
UTR3    KIAA1143
UTR3    AAK1
UTR3    EFHC1
UTR3    MET10
UTR3    METTL7A
UTR3    MET10

结果:

最终

代码语言:javascript
复制
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,但是代码没有给出正确的结果!

我预期会有以下情况:

代码语言:javascript
复制
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

.(下表继续)

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 14:31:29

代码语言:javascript
复制
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

数据

代码语言:javascript
复制
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")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51044885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档