选择 R 数据框的列,如果不存在则跳过。

有时我们在数据框中有大量列,我们知道一些列的名称,但在已知列中,有些列不存在于数据框中。现在,如果我们想选择我们知道的列并跳过不存在的列,那么我们可以使用子集。

例如,如果我们有一个名为 df 的数据框,其中包含 20 列,并且我们相信 x、y、z 存在于 df 中,但实际上 z 并不存在。现在可以使用以下命令选择将跳过 z 的列 x, y, z -

df[,names(df) %in% c("x","y","z")]

示例 1

考虑以下数据框 -

x1<-rnorm(20)

x3<-rnorm(20)

x4<-rnorm(20)

df1<-data.frame(x1,x3,x4)

df1

创建了以下数据框

             x1          x3          x4

1    0.39242697  1.94369518 -0.36692667

2   -2.87236253  0.63008900 -1.06281211

3   -0.65349377 -0.88442286 -0.01778122

4   -1.17954360 -1.12290165  1.22420677

5    0.12765932 -2.47906508 -0.36339964

6    1.00167594  0.98720588  0.26306844

7   -0.45533660 -0.61367430  0.59131906

8    0.10805656  0.70099416 -1.25835396

9    0.41539962 -0.34988934 -1.16621416

10   1.69208586 -0.08883033  0.25785287

11   0.14335867 -1.67958251 -0.45326409

12  -0.69518421 -1.50169655 -0.32216638

13   0.29088005 -1.30874972 -0.28515476

14  -0.01994773  0.19276681 -0.36537207

15  -0.61455895 -0.59203646  0.09349088

16   0.34339425  0.86884825  1.04326014

17   1.71791754  0.88276790  0.66905104

18   2.06755011 -0.64288995 -0.09404691

19  -1.54713973  0.73062146 -2.27962611

20   1.33430182 -1.03840560  0.94347980

要从上面创建的数据框中的 df1 中选择 x1、x2、x3 和 x4 列,请将以下代码添加到上面的代码段中 -

x1<-rnorm(20)

x3<-rnorm(20)

x4<-rnorm(20)

df1<-data.frame(x1,x3,x4)

df1[,names(df1) %in% c("x1","x2","x3","x4")]

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

            x1          x3          x4

1   0.39242697  1.94369518 -0.36692667

2  -2.87236253  0.63008900 -1.06281211

3  -0.65349377 -0.88442286 -0.01778122

4  -1.17954360 -1.12290165  1.22420677

5   0.12765932 -2.47906508 -0.36339964

6   1.00167594  0.98720588  0.26306844

7  -0.45533660 -0.61367430  0.59131906

8   0.10805656  0.70099416 -1.25835396

9   0.41539962 -0.34988934 -1.16621416

10  1.69208586 -0.08883033  0.25785287

11  0.14335867 -1.67958251 -0.45326409

12 -0.69518421 -1.50169655 -0.32216638

13  0.29088005 -1.30874972 -0.28515476

14 -0.01994773  0.19276681 -0.36537207

15 -0.61455895 -0.59203646  0.09349088

16  0.34339425  0.86884825  1.04326014

17  1.71791754  0.88276790  0.66905104

18  2.06755011 -0.64288995 -0.09404691

19 -1.54713973  0.73062146 -2.27962611

20  1.33430182 -1.03840560  0.94347980

示例 2

考虑下面给出的数据框 -

y1<-rpois(20,5)

y2<-rpois(20,2)

y4<-rpois(20,5)

y6<-rpois(20,2)

df2<-data.frame(y1,y2,y4,y6)

df2

创建了以下数据框

  y1 y2 y4 y6

1  4  3  5  2

2  4  2  4  3

3  4  0  9  3

4  3  5  6  1

5  4  2  3  3

6  7  1  8  0

7  7  3  4  2

8  5  2  8  1

9  3  4  8  1

10 4  2 10  1

11 3  2  4  1

12 5  1  5  2

13 3  2  8  2

14 4  2  9  0

15 5  0  2  3

16 4  0  6  1

17 5  2  7  1

18 6  0  6  2

19 5  2  5  2

20 6  1  4  1

要从上面创建的数据框中的 df2 中选择列 y1、y2、y3、y4、y5 和 y6,请将以下代码添加到上面的代码段中 -

y1<-rpois(20,5)

y2<-rpois(20,2)

y4<-rpois(20,5)

y6<-rpois(20,2)

df2<-data.frame(y1,y2,y4,y6)

df2[,names(df2) %in% c("y1","y2","y3","y4","y5","y6")]

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

  y1 y2 y4 y6

1  4  3  5  2

2  4  2  4  3

3  4  0  9  3

4  3  5  6  1

5  4  2  3  3

6  7  1  8  0

7  7  3  4  2

8  5  2  8  1

9  3  4  8  1

10 4  2 10  1

11 3  2  4  1

12 5  1  5  2

13 3  2  8  2

14 4  2  9  0

15 5  0  2  3

16 4  0  6  1

17 5  2  7  1

18 6  0  6  2

19 5  2  5  2

20 6  1  4  1

以上是 选择 R 数据框的列,如果不存在则跳过。 的全部内容, 来源链接: utcz.com/z/331606.html

回到顶部