如何基于具有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 官宣新年祝福语简短