如何基于R中的名称获取行索引或列索引?
我们可能更喜欢在分析期间使用行索引或列索引,而不是使用它们的数字,因此,我们可以借助grep函数获得它们。在处理大型数据集时,这很有用,因为大型数据集具有大量的行和列,因此更容易用索引而不是数字来调用它们。具体来说,需要列索引,另一方面,仅在特殊情况下(例如分析特定情况)才需要行。
示例
请看以下数据帧-
> set.seed(1)> x1<-rnorm(50,0.5)
> x2<-rnorm(50,0.8)
> x3<-rpois(50,2)
> x4<-rpois(50,5)
> x5<-runif(50,5,10)
> df<-data.frame(x1,x2,x3,x4,x5)
> head(df,20)
x1 x2 x3 x4 x5
1 -0.1264538 1.19810588 1 6 8.368561
2 0.6836433 0.18797361 1 9 5.474289
3 -0.3356286 1.14111969 2 5 7.462981
4 2.0952808 -0.32936310 1 5 7.307759
5 0.8295078 2.23302370 1 5 6.876083
6 -0.3204684 2.78039990 2 2 9.955496
7 0.9874291 0.43277852 2 3 5.881754
8 1.2383247 -0.24413463 0 5 9.067176
9 1.0757814 1.36971963 1 4 5.342233
10 0.1946116 0.66494540 3 9 7.002249
11 2.0117812 3.20161776 5 5 5.705722
12 0.8898432 0.76076000 0 4 5.966549
13 -0.1212406 1.48973936 3 4 9.206759
14 -1.7146999 0.82800216 5 7 8.599570
15 1.6249309 0.05672679 3 6 6.336060
16 0.4550664 0.98879230 1 3 7.475008
17 0.4838097 -1.00495863 2 2 5.415569
18 1.4438362 2.26555486 5 6 6.769421
19 1.3212212 0.95325334 5 6 9.846044
20 1.0939013 2.97261167 1 3 8.123571
根据列的名称查找索引-
> grep("x3", colnames(df))[1] 3
> grep("x5", colnames(df))
[1] 5
> grep("x1", colnames(df))
[1] 1
让我们更改行名,因为它们的编号从1到50,所以行索引将与它们的名称相同。我们将它们更改为50到1,如下所示-
> rownames(df)<-50:1> head(df,20)
x1 x2 x3 x4 x5
50 -0.1264538 1.19810588 1 6 8.368561
49 0.6836433 0.18797361 1 9 5.474289
48 -0.3356286 1.14111969 2 5 7.462981
47 2.0952808 -0.32936310 1 5 7.307759
46 0.8295078 2.23302370 1 5 6.876083
45 -0.3204684 2.78039990 2 2 9.955496
44 0.9874291 0.43277852 2 3 5.881754
43 1.2383247 -0.24413463 0 5 9.067176
42 1.0757814 1.36971963 1 4 5.342233
41 0.1946116 0.66494540 3 9 7.002249
40 2.0117812 3.20161776 5 5 5.705722
39 0.8898432 0.76076000 0 4 5.966549
38 -0.1212406 1.48973936 3 4 9.206759
37 -1.7146999 0.82800216 5 7 8.599570
36 1.6249309 0.05672679 3 6 6.336060
35 0.4550664 0.98879230 1 3 7.475008
34 0.4838097 -1.00495863 2 2 5.415569
33 1.4438362 2.26555486 5 6 6.769421
32 1.3212212 0.95325334 5 6 9.846044
31 1.0939013 2.97261167 1 3 8.123571
现在让我们找到包含数字5的行名称-
> grep(5, rownames(df))[1] 1 6 16 26 36 46
查找第十行的行名-
> grep(10, rownames(df))[1] 41
查找包含数字4的行名称-
> grep(4, rownames(df))[1] 2 3 4 5 6 7 8 9 10 11 17 27 37 47
以上是 如何基于R中的名称获取行索引或列索引? 的全部内容, 来源链接: utcz.com/z/338136.html