我有一个包含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()。但我不知道怎么做。谢谢你的帮助。
答案 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)