如何基于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

回到顶部