如何更改 R 数据框中的行顺序?

要更改 R 数据框中的行顺序,我们可以使用单个方括号并首先提供行顺序。

例如,如果我们有一个名为 df 的数据框,其中包含 10 行,那么我们可以使用下面给出的命令更改行顺序 -

df[c(6:8,2,5,9,10,1,3:4),]

查看以下示例以了解其工作原理。

示例 1

以下代码段创建了一个示例数据框 -

x1<-rnorm(20,2)
x2<-rnorm(20,2)
df1<-data.frame(x1,x2)
df1

创建以下数据框 -

       x1        x2
1   3.0461851  1.8743169
2   0.9453059  3.8422947
3   2.4122103  2.5408842
4   1.3128584  1.1767217
5   3.4074574  1.9252181
6   1.9481946  3.6743418
7   0.3099514  1.1913972
8   3.3114028  2.3571951
9   3.3503635  2.3842746
10  1.0158586  1.5063259
11  1.3298287  1.4684843
12  2.6752537  1.9683690
13  1.1291064  2.4145713
14 -0.2177409  2.0065808
15  2.4812767  3.1936923
16  3.1920233  1.2045429
17  0.3469155  2.5212239
18  2.6807522  1.7309279
19  2.4361746  2.7317351
20  1.7637194  0.2819075

要更改 df1 中的行顺序,请将以下代码添加到上述代码段中 -

x1<-rnorm(20,2)
x2<-rnorm(20,2)
df1<-data.frame(x1,x2)
df1[c(10:1,20:11),]
输出结果

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

          x1     x2
10  1.0158586  1.5063259
9   3.3503635  2.3842746
8   3.3114028  2.3571951
7   0.3099514  1.1913972
6   1.9481946  3.6743418
5   3.4074574  1.9252181
4   1.3128584  1.1767217
3   2.4122103  2.5408842
2   0.9453059  3.8422947
1   3.0461851  1.8743169
20  1.7637194  0.2819075
19  2.4361746  2.7317351
18  2.6807522  1.7309279
17  0.3469155  2.5212239
16  3.1920233  1.2045429
15  2.4812767  3.1936923
14 -0.2177409  2.0065808
13  1.1291064  2.4145713
12  2.6752537  1.9683690
11  1.3298287  1.4684843

示例 2

以下代码段创建了一个示例数据框 -

y1<-rpois(20,2)
y2<-rpois(20,5)
y3<-rpois(20,4)
df2<-data.frame(y1,y2,y3)
df2

创建以下数据框 -

   y1 y2  y3
1  2  11  3
2  2   5  7
3  2   3  6
4  1   5  7
5  5   3  4
6  1   2  2
7  3   4  2
8  2   3  3
9  0   5  8
10 2   7  3
11 4   3  3
12 0   5  2
13 3   3  2
14 3   9  2
15 1   6  5
16 2   5  5
17 1   6  5
18 6   8  6
19 1   6  5
20 2   4  2

要更改 df2 中的行顺序,请将以下代码添加到上述代码段中 -

y1<-rpois(20,2)
y2<-rpois(20,5)
y3<-rpois(20,4)
df2<-data.frame(y1,y2,y3)
df2[c(2,5,7,4,1,11,12,17,14,15,13,8,9,10,6,3,18,20,19,16),]
输出结果

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

   y1 y2 y3
2  2  5  7
5  5  3  4
7  3  4  2
4  1  5  7
1  2 11  3
11 4  3  3
12 0  5  2
17 1  6  5
14 3  9  2
15 1  6  5
13 3  3  2
8  2  3  3
9  0  5  8
10 2  7  3
6  1  2  2
3  2  3  6
18 6  8  6
20 2  4  2
19 1  6  5
16 2  5  5

猜你喜欢