比较2个数据帧与R中的任意数量的列和输出

时间:2016-07-04 12:02:54

标签: r dataframe compare subset

我是生物学家,我正在尝试使用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)给我一个输出,其中1的{​​{1}}(增长)位置和plate1的{​​{1}}(无增长)位置。我希望它像一个新的0,我plate2dataframe取决于这两个位置是否符合我的条件

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

1 个答案:

答案 0 :(得分:2)

你可以做到

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中。