如何基于R数据帧列的值获取行索引?

R数据帧的一行可以在列中具有多种方式,并且这些值可以是数字,逻辑,字符串等。基于行号查找值很容易,但是基于值查找行号却很不同。如果要在特定列中查找特定值的行号,则可以提取整行,这似乎是一种更好的方法,可以使用单个方括号来获取行的子集。

示例

请看以下数据帧-

x1<-rnorm(20,0.5)
x2<-rpois(20,2)
x3<-rpois(20,5)
x4<-rpois(20,10)
x5<-rnorm(20,2)
df<-data.frame(x1,x2,x3,x4,x5)
df

输出结果

      x1       x2 x3  x4      x5
1 1.33780769    1 5    1    3.3322153
2 2.22651263    3 5    14   3.4969403
3 0.53231950    4 9    8    3.7816594
4 0.99704756    1 6    13    2.7308284
5 0.37735760    2 5    7     2.3210021
6 0.96967898    3 7    8     1.9086576
7 0.06543569    2 4    9    1.4005479
8 1.59064892    1 8    14    1.1250329
9 0.48771130    1 4    11    2.2479028
10 0.64134261   0 9    5    2.4194513
11 0.43355439   3 2    18    -0.7633724
12 1.31803573   3 4    10    2.6201427
13 0.25367683   3 6    9    1.5728880
14 1.07884550   5 4    9    0.8045540
15 0.78574641   6 6    8    1.3538888
16 -0.27873444  2 6    12    3.5431787
17 0.28112519   2 3    8    4.1865617
18 1.24416762   4 4    11    2.3626763
19 -0.04745463  2 5    13    3.4203297
20 1.33358241   1 9    14    2.8205837

查找还将返回值的行索引的行-

示例

df[df$x4==14,]

输出结果

      x1   x2 x3 x4 x5
2 2.226513  3 5  14 3.496940
8 1.590649  1 8  14 1.125033
20 1.333582 1 9  14 2.820584

示例

df[df$x4==12,]

输出结果

      x1     x2  x3  x4   x5
16 -0.2787344 2  6   12 3.543179

示例

df[df$x4==7,]

输出结果

      x1    x2  x3 x4    x5
5 0.3773576 2   5   7 2.321002

示例

df[df$x4==9,]

输出结果

      x1       x2 x3 x4    x5
7 0.06543569    2 4   9    1.400548
13 0.25367683   3 6   9    1.572888
14 1.07884550   5 4   9    0.804554

示例

df[df$x2==2,]

输出结果

      x1       x2 x3 x4    x5
5 0.37735760    2 5   7    2.321002
7 0.06543569    2 4   9    1.400548
16 -0.27873444  2 6   12   3.543179
17 0.28112519   2 3   8    4.186562
19 -0.04745463  2 5   13    3.420330

示例

df[df$x2==5,]

输出结果

      x1    x2 x3 x4   x5
14 1.078845 5   4  9  0.804554

示例

df[df$x2==4,]

输出结果

      x1    x2 x3 x4   x5
3 0.5323195 4   9 8  3.781659
18 1.2441676 4  4 11 2.362676

示例

df[df$x3==4,]

输出结果

      x1    x2 x3  x4    x5
7 0.06543569 2 4   9    1.400548
9 0.48771130 1 4  11   2.247903
12 1.31803573 3 4 10   2.620143
14 1.07884550 5 4  9    0.804554
18 1.24416762 4 4 11   2.362676

示例

df[df$x3==6,]

输出结果

      x1    x2 x3 x4    x5
4 0.9970476 1   6 13  2.730828
13 0.2536768 3  6 9   1.572888
15 0.7857464 6  6 8   1.353889
16 -0.2787344 2 6 12  3.543179

示例

df[df$x3==5,]

输出结果

      x1    x2 x3 x4 x5
1 1.33780769 1 5  1 3.332215
2 2.22651263 3 5 14 3.496940
5 0.37735760 2 5  7 2.321002
19 -0.04745463 2 5 13 3.420330

示例

df[df$x3==8,]

输出结果

      x1   x2 x3 x4 x5
8 1.590649 1  8 14 1.125033

示例

df[df$x2==1,]

输出结果

      x1    x2 x3  x4   x5
1 1.3378077 1   5  1  3.332215
4 0.9970476 1   6  13  2.730828
8 1.5906489 1   8  14  1.125033
9 0.4877113 1   4  11  2.247903
20 1.3335824 1  9  14  2.820584