如何从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 w1 -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 w1 -0.4677498 1.15461 2.334254 0.9143609 2 8 6 0
示例
> df1[2,]
输出结果
x y z a b c q w2 0.04088223 0.7590773 2.209577 0.9712316 1 5 6 2
示例
> df1[3,]
输出结果
x y z a b c q w3 1.003352 1.727221 1.731842 1.187188 2 8 7 0
示例
> df1[5,]
输出结果
x y z a b c q w5 0.306401 1.205514 2.571953 0.8469379 4 9 5 1
示例
> df1[8,]
输出结果
x y z a b c q w8 0.4464515 1.020947 1.11988 1.325024 2 10 6 1
示例
> df1[9,]
输出结果
x y z a b c q w9 -2.205142 1.692772 2.144747 1.195064 0 7 5 2
示例
> df1[12,]
输出结果
x y z a b c q w12 -0.7230179 1.045074 0.2930952 1.193043 2 8 4 2
示例
> df1[15,]
输出结果
x y z a b c q w15 -0.9475699 0.2507953 1.171902 1.029465 5 10 3 1
示例
> df1[18,]
输出结果
x y z a b c q w18 0.423595 1.547294 1.700094 0.8440301 1 12 2 2
示例
> df1[20,]
输出结果
x y z a b c q w20 -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 v31 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 v33 0.1225048 0.1816886 4.524547
示例
> df2[5,]
输出结果
v1 v2 v35 0.5119466 0.03005732 3.20858
示例
> df2[7,]
输出结果
v1 v2 v37 0.03742423 0.01711751 4.135536
示例
> df2[9,]
输出结果
v1 v2 v39 0.636172 0.5538603 7.812157
示例
> df2[10,]
输出结果
v1 v2 v310 0.8169983 0.5616071 4.071993
示例
> df2[12,]
输出结果
v1 v2 v312 0.6310179 0.1074285 2.57373
示例
> df2[15,]
输出结果
v1 v2 v315 0.4455594 0.01828257 3.953676
示例
> df2[17,]
输出结果
v1 v2 v317 0.1725868 0.2027857 5.874761
示例
> df2[20,]
输出结果
v1 v2 v320 0.3123308 0.06999427 4.855714
以上是 如何从R数据帧子集第n行? 的全部内容, 来源链接: utcz.com/z/326450.html