如何将R数据帧的列转换为单个向量?

有时,数据框中的所有列都有代表特定变量的相似数据特征。例如,有一个包含五个列的数据框,每个列的高度都很高。要将这种类型的数据帧转换为向量,我们可以将as.vectorfunction和function一起使用as.matrix。在as.matrix将读取,使得值的阵列可以被创建的数据帧的列。

例1

考虑以下数据帧-

set.seed(101)
x1<−rnorm(20)
x2<−rnorm(20)
x3<−rnorm(20,5,0.34)
df1<−data.frame(x1,x2,x3)
df1
输出结果
x1 x2 x3
1 −0.3260365 −0.1637557 5.164036
2 0.5524619 0.7085221 5.257793
3 −0.6749438 −0.2679805 4.211429
4 0.2143595 −1.4639218 4.843768
5 0.3107692 0.7444358 4.624170
6 1.1739663 −1.4103902 5.136996
7 0.6187899 0.4670676 5.193438
8 −0.1127343 −0.1193201 4.759932
9 0.9170283 0.4672390 4.901369
10 −0.2232594 0.4981356 4.495481
11 0.5264481 0.8949372 4.608913
12 −0.7948444 0.2791520 4.906680
13 1.4277555 1.0078658 5.196486
14 −1.4668197 −2.0731065 4.525053
15 −0.2366834 1.1898534 5.254680
16 −0.1933380 −0.7243742 4.642597
17 −0.8497547 0.1679838 5.056229
18 0.0584655 0.9203352 5.384135
19 −0.8176704 −1.6716048 5.399066
20 −2.0503078 0.4484691 4.854527

将df1转换为向量-

示例

df1_vector<−as.vector(as.matrix(df1[,c("x1","x2","x3")]))
df1_vector
输出结果
[1] −0.3260365 0.5524619 −0.6749438 0.2143595 0.3107692 1.1739663
[7] 0.6187899 −0.1127343 0.9170283 −0.2232594 0.5264481 −0.7948444
[13] 1.4277555 −1.4668197 −0.2366834 −0.1933380 −0.8497547 0.0584655
[19] −0.8176704 −2.0503078 −0.1637557 0.7085221 −0.2679805 −1.4639218
[25] 0.7444358 −1.4103902 0.4670676 −0.1193201 0.4672390 0.4981356
[31] 0.8949372 0.2791520 1.0078658 −2.0731065 1.1898534 −0.7243742
[37] 0.1679838 0.9203352 −1.6716048 0.4484691 5.1640360 5.2577927
[43] 4.2114287 4.8437684 4.6241696 5.1369956 5.1934379 4.7599317
[49] 4.9013692 4.4954815 4.6089132 4.9066798 5.1964863 4.5250531
[55] 5.2546796 4.6425965 5.0562295 5.3841351 5.3990656 4.8545265

例2

y1<−sample(LETTERS[1:26],20)
y2<−sample(LETTERS[1:26],20)
y3<−sample(LETTERS[1:26],20)
y4<−sample(LETTERS[1:26],20)
df2<−data.frame(y1,y2,y3,y4)
df2
输出结果
  y1 y2 y3 y4
1  G V P Y
2  A J N A
3  E L X L
4  K E B O
5  P Z O E
6  W T T Z
7  X N J U
8  L D L J
9  U U Z X
10 Y B A F
11 F M W I
12 Q P F B
13 T Y H M
14 H C K T
15 I F Y W
16 N G G H
17 R A M K
18 S K E G
19 C O U Q
20 O W D V

将df2转换为向量-

示例

df2_vector<−as.vector(as.matrix(df2[,c("y1","y2","y3","y4")]))
df2_vector
输出结果
[1] "G" "A" "E" "K" "P" "W" "X" "L" "U" "Y" "F" "Q" "T" "H" "I" "N" "R" "S" "C"
[20] "O" "V" "J" "L" "E" "Z" "T" "N" "D" "U" "B" "M" "P" "Y" "C" "F" "G" "A" "K"
[39] "O" "W" "P" "N" "X" "B" "O" "T" "J" "L" "Z" "A" "W" "F" "H" "K" "Y" "G" "M"
[58] "E" "U" "D" "Y" "A" "L" "O" "E" "Z" "U" "J" "X" "F" "I" "B" "M" "T" "W" "H"
[77] "K" "G" "Q" "V"