如何基于具有OR条件的列的字符串值对R数据帧进行子集化?
我们可能想使用特定列的一个或多个值来创建R数据帧的子集。例如,假设我们有一个数据帧df,其中包含C1,C2,C3,C4和C5列,并且这些列中的每一个都包含从A到Z的值。如果我们要使用C1列中的值A或B选择行,则可以作为df[df$C1==“A”|df$C1==“B”,]完成。
请看以下数据帧-
示例
set.seed(99)
x1<-rep(c("A","B","C"),times=c(8,7,5))
x2<-sample(1:9,20,replace=TRUE)
df1<data.frame(x1,x2)
df1输出结果
x1 x2 1 A 1 2 A 6 3 A 6 4 A 5 5 A 3 6 A 2 7 A 6 8 A 4 9 B 4 10 B 4 11 B 9 12 B 2 13 B 8 14 B 6 15 B 4 16 C 4 17 C 1 18 C 7 19 C 2 20 C 7
基于包含A或C的x1列的行进行子设置-
示例
df1[df1$x1=="A"|df1$x1=="C",]
输出结果
x1 x2 1 A 1 2 A 6 3 A 6 4 A 5 5 A 3 6 A 2 7 A 6 8 A 4 16 C 4 17 C 1 18 C 7 19 C 2 20 C 7
基于包含B或C的x1列的行进行子设置-
示例
df1[df1$x1=="B"|df1$x1=="C",]
输出结果
x1 x2 9 B 4 10 B 4 11 B 9 12 B 2 13 B 8 14 B 6 15 B 4 16 C 4 17 C 1 18 C 7 19 C 2 20 C 7
基于包含A或B的x1列的行进行子设置-
示例
df1[df1$x1=="A"|df1$x1=="B",]
输出结果
x1 x2 1 A 1 2 A 6 3 A 6 4 A 5 5 A 3 6 A 2 7 A 6 8 A 4 9 B 4 10 B 4 11 B 9 12 B 2 13 B 8 14 B 6 15 B 4
让我们看另一个例子-
示例
Party<-sample(c("Democratic","Republican","Reform","Libertarian"),20,replace=TRUE) Rate_Per<-sample(1:100,20,replace=TRUE)
df2<-data.frame(Party,Rate_Per)
df2输出结果
Party Rate_Per 1 Libertarian 45 2 Republican 79 3 Democratic 23 4 Reform 55 5 Republican 37 6 Reform 70 7 Reform 64 8 Republican 62 9 Reform 84 10 Republican 18 11 Libertarian 4 12 Republican 74 13 Reform 11 14 Libertarian 49 15 Democratic 39 16 Libertarian 76 17 Democratic 5 18 Libertarian 81 19 Democratic 1 20 Republican 56
基于包含共和党或民主党的党列的子集-
示例
df2[df2$Party=="Republican"|df2$Party=="Democratic",]
输出结果
Party Rate_Per 1 Republican 38 2 Republican 79 4 Democratic 85 7 Republican 29 8 Republican 45 9 Democratic 12 10 Republican 73 13 Republican 38 15 Democratic 40 16 Republican 35 19 Republican 50
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志