如何在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+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告