如何在R数据框中提取第n行?


在R中有很多方法可以找到子集,最简单的方法是使用单方括号。如果我们想要提取一行或多行连续或不连续的行,可以直接使用数据框名称和单方括号。例如,如果我们有一个名为df的数据框,并且我们想提取df的第一行,我们可以使用df[1,],就是这样。

示例

考虑以下数据框

在线演示

> set.seed(214)
> x<-rnorm(20)
> y<-rnorm(20,1,0.5)
> z<-rnorm(20,2,0.57)
> a<-rnorm(20,1,0.27)
> b<-rpois(20,2)
> c<-rpois(20,8)
> q<-rpois(20,5)
> w<-rpois(20,1)
> df1<-data.frame(x,y,z,a,b,c,q,w)
> df1

输出

x y z a b c q w
1 -0.46774980 1.1546101 2.3342540 0.9143609 2 8 6 0
2 0.04088223 0.7590773 2.2095770 0.9712316 1 5 6 2
3 1.00335193 1.7272210 1.7318417 1.1871876 2 8 7 0
4 2.02522505 0.8515016 1.9366870 0.4658958 4 4 3 2
5 0.30640096 1.2055142 2.5719530 0.8469379 4 9 5 1
6 0.42577748 1.6967249 1.5668833 0.9602888 5 7 5 1
7 0.74889267 2.0073967 2.4715450 0.7116510 3 5 5 1
8 0.44645148 1.0209466 1.1198797 1.3250236 2 10 6 1
9 -2.20514180 1.6927716 2.1447475 1.1950635 0 7 5 2
10 1.98181366 1.3930763 2.3038074 1.1096453 2 6 5 1
11 -2.62555247 1.2849028 1.7522339 1.1864803 2 5 2 1
12 -0.72301789 1.0450742 0.2930952 1.1930435 2 8 4 2
13 -0.88306915 0.8239228 2.5604929 0.9686630 1 8 2 0
14 -0.52517037 1.3413851 2.0189895 0.8643248 2 9 4 0
15 -0.94756990 0.2507953 1.1719018 1.0294649 5 10 3 1
16 -0.51916173 1.1889573 2.1277015 0.6870978 3 8 5 0
17 -1.12071138 1.4807661 1.9248328 1.0950342 1 12 4 2
18 0.42359496 1.5472942 1.7000941 0.8440301 1 12 2 2
19 0.46975875 1.4835207 1.2282101 1.0651645 2 6 7 0
20 -0.21269994 0.8056228 1.7694949 0.9686047 5 11 6 0

提取df1的不同行

示例

> df1[1,]

输出

x y z a b c q w
1 -0.4677498 1.15461 2.334254 0.9143609 2 8 6 0

示例

> df1[2,]

输出

x y z a b c q w
2 0.04088223 0.7590773 2.209577 0.9712316 1 5 6 2

示例

> df1[3,]

输出

x y z a b c q w
3 1.003352 1.727221 1.731842 1.187188 2 8 7 0

示例

> df1[5,]

输出

x y z a b c q w
5 0.306401 1.205514 2.571953 0.8469379 4 9 5 1

示例

> df1[8,]

输出

x y z a b c q w
8 0.4464515 1.020947 1.11988 1.325024 2 10 6 1

示例

> df1[9,]

输出

x y z a b c q w
9 -2.205142 1.692772 2.144747 1.195064 0 7 5 2

示例

> df1[12,]

输出

x y z a b c q w
12 -0.7230179 1.045074 0.2930952 1.193043 2 8 4 2

示例

> df1[15,]

输出

x y z a b c q w
15 -0.9475699 0.2507953 1.171902 1.029465 5 10 3 1

示例

> df1[18,]

输出

x y z a b c q w
18 0.423595 1.547294 1.700094 0.8440301 1 12 2 2

示例

> df1[20,]

输出

x y z a b c q w
20 -0.2126999 0.8056228 1.769495 0.9686047 5 11 6 0

让我们来看另一个例子

示例

在线演示

> v1<-rexp(20,1.24)
> v2<-rexp(20,3.7)
> v3<-runif(20,2,8)
> df2<-data.frame(v1,v2,v3)
> df2

输出

       v1         v2       v3
1 0.20602134 0.06916392 6.107286
2 0.29568560 0.36353986 3.529261
3 0.12250478 0.18168857 4.524547
4 2.37228009 0.20580564 6.795179
5 0.51194665 0.03005732 3.208580
6 0.25267457 0.12722097 2.184198
7 0.03742423 0.01711751 4.135536
8 0.45572624 0.29921997 6.046839
9 0.63617201 0.55386034 7.812157
10 0.81699828 0.56160708 4.071993
11 0.26570318 0.06759301 3.625271
12 0.63101790 0.10742853 2.573730
13 0.60664724 0.28611242 4.053965
14 0.79000859 0.09818221 6.257031
15 0.44555943 0.01828257 3.953676
16 1.87292479 0.20373389 3.407394
17 0.17258681 0.20278572 5.874761
18 0.09658603 0.09844967 5.382432
19 0.04970458 0.46433382 7.007515
20 0.31233081 0.06999427 4.855714

提取df2的不同行

示例

> df2[3,]

输出

v1 v2 v3
3 0.1225048 0.1816886 4.524547

示例

> df2[5,]

输出

v1 v2 v3
5 0.5119466 0.03005732 3.20858

示例

> df2[7,]

输出

v1 v2 v3
7 0.03742423 0.01711751 4.135536

示例

> df2[9,]

输出

v1 v2 v3
9 0.636172 0.5538603 7.812157

示例

> df2[10,]

输出

v1 v2 v3
10 0.8169983 0.5616071 4.071993

示例

> df2[12,]

输出

v1 v2 v3
12 0.6310179 0.1074285 2.57373

示例

> df2[15,]

输出

v1 v2 v3
15 0.4455594 0.01828257 3.953676

示例

> df2[17,]

输出

v1 v2 v3
17 0.1725868 0.2027857 5.874761

示例

> df2[20,]

输出

v1 v2 v3
20 0.3123308 0.06999427 4.855714

更新于:2020年11月21日

1K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.