如何从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

以上是 如何从R数据帧子集第n行? 的全部内容, 来源链接: utcz.com/z/326450.html

回到顶部