如何根据小写字母对 R 数据框进行子集化?
如果我们有一个包含一些小写和一些大写字符串值的数据框,那么我们可能希望基于小写或大写字母对数据框进行子集化。
为此,我们可以使用 apply 和 sapply 函数,如下例所示。
示例 1
以下代码段创建了一个示例数据框 -
x1<-sample(c(letters[1:26],LETTERS[1:26]),20)x2<-sample(c(letters[1:26],LETTERS[1:26]),20)
df1<-data.frame(x1,x2)
df1
创建以下数据框 -
x1 x21 w g
2 b l
3 J Z
4 c y
5 Q M
6 T J
7 Z i
8 s c
9 r j
10 E f
11 S N
12 x R
13 n Q
14 v V
15 N n
16 X P
17 p h
18 z I
19 l x
20 P O
要基于小写字母对 df1 进行子集化,请将以下代码添加到上述代码段中 -
x1<-sample(c(letters[1:26],LETTERS[1:26]),20)输出结果x2<-sample(c(letters[1:26],LETTERS[1:26]),20)
df1<-data.frame(x1,x2)
df1[apply(df1==sapply(df1,tolower),1,any),]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
x1 x21 w g
2 b l
4 c y
7 Z i
8 s c
9 r j
10 E f
12 x R
13 n Q
14 v V
15 N n
17 p h
18 z I
19 l x
示例 2
以下代码段创建了一个示例数据框 -
y1<-sample(c(letters[1:4],LETTERS[1:4]),20,replace=TRUE)y2<-sample(c(letters[1:4],LETTERS[1:4]),20,replace=TRUE)
df2<-data.frame(y1,y2)
df2
创建以下数据框 -
y1 y21 d a
2 d D
3 d b
4 d D
5 a a
6 A a
7 A b
8 A B
9 b A
10 C d
11 c B
12 D B
13 A C
14 b d
15 A B
16 c c
17 C D
18 a D
19 c a
20 d d
要基于小写字母对 df2 进行子集化,请将以下代码添加到上述代码段中 -
y1<-sample(c(letters[1:4],LETTERS[1:4]),20,replace=TRUE)输出结果y2<-sample(c(letters[1:4],LETTERS[1:4]),20,replace=TRUE)
df2<-data.frame(y1,y2)
df2[apply(df2==sapply(df2,tolower),1,any),]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
y1 y21 d a
2 d D
3 d b
4 d D
5 a a
6 A a
7 A b
9 b A
10 C d
11 c B
14 b d
16 c c
18 a D
19 c a
20 d d
以上是 如何根据小写字母对 R 数据框进行子集化? 的全部内容, 来源链接: utcz.com/z/327397.html