如何将R数据框中的行转换为列表?
有时每行需要区别对待,因此,我们可能希望将这些行转换为列表。这将帮助我们分别对行元素执行操作。要将行转换为列表,我们可以通过定义数据框中的行数来使用拆分功能。
请看以下数据帧-
示例
set.seed(101)x1<-rnorm(20,5,1)
x2<-rnorm(20,5,2)
x3<-rnorm(20,5,1.5)
x4<-rnorm(20,3,0.096)
df1<-data.frame(x1,x2,x3,x4)
df1
输出结果
x1 x2 x3 x41 4.673964 4.672489 5.723688 2.975059
2 5.552462 6.417044 6.137321 2.864527
3 4.325056 4.464039 1.521009 2.938430
4 5.214359 2.072156 4.310743 3.010796
5 5.310769 6.488872 3.341924 3.040570
6 6.173966 2.179220 5.604392 3.037136
7 5.618790 5.934135 5.853402 2.933971
8 4.887266 4.761360 3.940875 3.014295
9 5.917028 5.934478 4.564864 2.994466
10 4.776741 5.996271 2.774183 2.992817
11 5.526448 6.789874 3.274617 3.144950
12 4.205156 5.558304 4.588293 3.155514
13 6.427756 7.015732 5.866852 3.110703
14 3.533180 0.853787 2.904646 2.992550
15 4.763317 7.379707 6.123587 2.825382
16 4.806662 3.551252 3.423220 2.900405
17 4.150245 5.335968 5.248071 3.029039
18 5.058465 6.840670 6.694714 2.877317
19 4.182330 1.656790 6.760584 3.013281
20 2.949692 5.896938 4.358205 2.995106
将df1的行转换为列表-
df1_row_list <-split(df1,1:nrow(df1))
df1_row_list
$`1`
x1 x2 x3 x41 4.673964 4.672489 5.723688 2.975059
$`2`
x1 x2 x3 x42 5.552462 6.417044 6.137321 2.864527
$`3`
x1 x2 x3 x43 4.325056 4.464039 1.521009 2.93843
$`4`
x1 x2 x3 x44 5.214359 2.072156 4.310743 3.010796
$`5`
x1 x2 x3 x45 5.310769 6.488872 3.341924 3.04057
$`6`
x1 x2 x3 x46 6.173966 2.17922 5.604392 3.037136
$`7`
x1 x2 x3 x47 5.61879 5.934135 5.853402 2.933971
$`8`
x1 x2 x3 x48 4.887266 4.76136 3.940875 3.014295
$`9`
x1 x2 x3 x49 5.917028 5.934478 4.564864 2.994466
$`10`
x1 x2 x3 x410 4.776741 5.996271 2.774183 2.992817
$`11`
x1 x2 x3 x411 5.526448 6.789874 3.274617 3.14495
$`12`
x1 x2 x3 x412 4.205156 5.558304 4.588293 3.155514
$`13`
x1 x2 x3 x413 6.427756 7.015732 5.866852 3.110703
$`14`
x1 x2 x3 x414 3.53318 0.853787 2.904646 2.99255
$`15`
x1 x2 x3 x415 4.763317 7.379707 6.123587 2.825382
$`16`
x1 x2 x3 x416 4.806662 3.551252 3.42322 2.900405
$`17`
x1 x2 x3 x417 4.150245 5.335968 5.248071 3.029039
$`18`
x1 x2 x3 x418 5.058465 6.84067 6.694714 2.877317
$`19`
x1 x2 x3 x419 4.18233 1.65679 6.760584 3.013281
$`20`
x1 x2 x3 x420 2.949692 5.896938 4.358205 2.995106
is.list(df1_row_list) [1] TRUE
让我们看另一个例子-
示例
y1<-LETTERS[1:20]y2<-1:20
y3<-sample(0:9,20,replace=TRUE)
y4<-rpois(20,3)
y5<-rexp(20,3)
df2<-data.frame(y1,y2,y3,y4,y5)
df2
输出结果
y1 y2 y3 y4 y51 A 1 6 1 0.12535201
2 B 2 1 4 0.04849127
3 C 3 7 4 0.10894953
4 D 4 0 4 0.32620261
5 E 5 3 7 0.04711375
6 F 6 5 2 0.10263975
7 G 7 3 1 0.35080088
8 H 8 2 4 0.25617221
9 I 9 0 0 0.31124956
10 J 10 0 5 0.07771391
11 K 11 7 2 0.02583599
12 L 12 2 2 0.06699178
13 M 13 3 3 0.04767600
14 N 14 1 4 0.11942077
15 O 15 6 4 0.62873345
16 P 16 3 6 0.08066371
17 Q 17 3 3 0.58563662
18 R 18 9 0 0.00548393
19 S 19 0 2 0.01171107
20 T 20 0 1 0.10728116
将df2的行转换为列表-
df2_row_list <-split(df2,1:nrow(df2))
df2_row_list
$`1`
y1 y2 y3 y4 y51 A 1 4 2 0.02331396
$`2`
y1 y2 y3 y4 y52 B 2 6 2 0.2343971
$`3`
y1 y2 y3 y4 y53 C 3 1 5 0.022928
$`4`
y1 y2 y3 y4 y54 D 4 3 2 0.009332871
$`5`
y1 y2 y3 y4 y55 E 5 3 4 0.3321631
$`6`
y1 y2 y3 y4 y56 F 6 8 5 0.6256276
$`7`
y1 y2 y3 y4 y57 G 7 8 2 0.03358184
$`8`
y1 y2 y3 y4 y58 H 8 2 3 0.2089223
$`9`
y1 y2 y3 y4 y59 I 9 6 3 0.5231238
$`10`
y1 y2 y3 y4 y510 J 10 7 3 0.01456478
$`11`
y1 y2 y3 y4 y511 K 11 2 2 0.670605
$`12`
y1 y2 y3 y4 y512 L 12 1 2 0.1021066
$`13`
y1 y2 y3 y4 y513 M 13 5 7 0.2673457
$`14`
y1 y2 y3 y4 y514 N 14 0 1 0.442615
$`15`
y1 y2 y3 y4 y515 O 15 3 5 0.2244831
$`16`
y1 y2 y3 y4 y516 P 16 7 2 0.2897614
$`17`
y1 y2 y3 y4 y517 Q 17 2 4 0.4671283
$`18`
y1 y2 y3 y4 y518 R 18 7 3 0.274696
$`19`
y1 y2 y3 y4 y519 S 19 0 2 0.1120801
$`20`
y1 y2 y3 y4 y520 T 20 8 5 0.2727685
is.list(df2_row_list)[1]是
以上是 如何将R数据框中的行转换为列表? 的全部内容, 来源链接: utcz.com/z/334602.html