如何在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
廣告