【问题标题】:Comparing 2 dataframes with any number of columns and output in R将 2 个数据帧与任意数量的列进行比较并在 R 中输出
【发布时间】:2016-07-04 12:02:53
【问题描述】:

我是生物学家,我正在尝试使用 R 来分析我的数据。

我有我的盘子,我在 sertans 位置上培养了我的细菌。所以我有两张表格,我指出我的细菌正在生长(1)或不生长(0)。

# plate1
# K is a control column, A - E sample`s positions

K <- c(1, 0, 1, NA) 
A <- c(1, 0, 1, 0) 
B <- c(1, 0, 0, 1)
C <- c(0, 1, 0, 1)
D <- c(1, 0, 0, 1)
E <- c(1, 0, 0, 1)

plate1 <- data.frame(K, A, B, C, D, E)  # creating a dataframe with all observations for the first plate

# plate2

K <- c(0, 0, 1, NA)
A <- c(1, 0, 0, 1)
B <- c(0, 1, 1, 0)
C <- c(1, 0, 1, 0)
D <- c(1, 0, 1, 0)
E <- c(0, 1, 0, 1)

plate2 <- data.frame(K, A, B, C, D, E)  # creating a dataframe with all observations for the second plate.

我想问 R 两件事:

1) 比较两个板(数据框)的 A-E 列的所有变量

2) 给我一个输出,其中我有plate1 的1(增长)职位和plate2 的职位0(无增长)。我希望它像一个新的dataframe,我有TRUE 和FALSE,这取决于这两个位置是否符合我的条件

我确信解决方案应该非常简单,但我试图通过人们建议使用merge 函数或不同循环的问题,但没有成功。请你帮我完成这个任务好吗?我可以对多个数据帧执行相同的操作吗?

【问题讨论】:

    标签: r dataframe compare subset


    【解决方案1】:

    你可以的

    plate1==plate2
    #          K     A     B     C     D     E
    # [1,] FALSE  TRUE FALSE FALSE  TRUE FALSE
    # [2,]  TRUE  TRUE FALSE FALSE  TRUE FALSE
    # [3,]  TRUE FALSE FALSE FALSE FALSE  TRUE
    # [4,]    NA FALSE FALSE FALSE FALSE  TRUE
    

    和

    plate1==1 & plate2==0
    #         K     A     B     C     D     E
    # [1,]  TRUE FALSE  TRUE FALSE FALSE  TRUE
    # [2,] FALSE FALSE FALSE  TRUE FALSE FALSE
    # [3,] FALSE  TRUE FALSE FALSE FALSE FALSE
    # [4,]    NA FALSE  TRUE  TRUE  TRUE FALSE
    

    如果需要数据框,请将其包装在 as.data.frame 中。

    【讨论】:

    • 为什么选择mapply? plate1 == plate2 ?
    • 哦,是的,这很简单。我只是通过搜索答案感到困惑。非常感谢!
    • 对不起,伙计们,它没有按我的预期工作。我需要 R 让我在板块 1 上生长而不是在板块 2 上生长的输出。如果我只是比较两个数据帧,它将给我匹配两个条件的输出:在plate1 上增长,而不在plate2 上增长,反之亦然(相反的匹配也是)。抱歉,如果我没有正确询问
    • @makkreker (plate1==1 &amp; plate2==0) | (plate1==0 &amp; plate2==1) ?如果您有新情况,请更新您的帖子。
    • @zx8754 谢谢,现在看起来应该符合条件plate1==1 &amp; plate2==0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2016-10-17
    • 1970-01-01
    相关资源
    最近更新 更多