如何根据小写字母对 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 x2

1  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 x2

1  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 y2

1  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 y2

1  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

回到顶部