具有来自另一数据帧R的条件值的新数据帧
我有一个3列的数据框具有来自另一数据帧R的条件值的新数据帧,r,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”中的值满足以下条件:列“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 首先想到的是使用subset()。但我不知
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”中的值满足以下条件:列“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
首先想到的是使用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
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)