选择 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 x41 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 x41 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 y61 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 y61 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