具有来自另一数据帧R的条件值的新数据帧

时间:2018-04-20 09:02:23

标签: r

我有一个包含3列的数据框

   a b c
P1 z 1 22
P2 z 2 18
P3 x 1 3
P4 z 1 16
P5 x 2 6
P6 z 1 12
P7 x 1 23

我想创建一个新的数据框,只包含列" c"符合条件的是" z"在第" a"和" 1"在栏目" b" +" x"在第" a"和" 2"在栏目" b"。

之后,新数据框应如下所示:

   a b c
P1 z 1 22
P4 z 1 16
P5 x 2 6
P6 z 1 12

首先要考虑的是使用subset()。但我不知道怎么做。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

使用subset以下内容重现您的预期输出:

subset(df, (a == "z" & b == 1) | (a == "x" & b == 2));
#   a b  c
#P1 z 1 22
#P4 z 1 16
#P5 x 2  6
#P6 z 1 12

或使用dplyr方法使用filter

library(dplyr);
filter(df, (a == "z" & b == 1) | (a == "x" & b == 2))

样本数据

df <- read.table(text = 
    "   a b c
P1 z 1 22
P2 z 2 18
P3 x 1 3
P4 z 1 16
P5 x 2 6
P6 z 1 12
P7 x 1 23", header = T)