如何将 R 数据框中的两列转换为命名向量?


如果两列的形式是,一列包含向量值的名称,另一列包含向量的值,那么我们可能希望将它们转换为一个向量。为此,我们可以简单地读取具有其数据类型和结构的向量,并使用结构函数对它们进行结构化。

示例 1

 在线演示

x1<-rep(c("C1","C2","C3","C4"),each=5)
x2<-rep(1:10,2)
df1<-data.frame(x1,x2)
df1

输出

x1 x2
1 C1 1
2 C1 2
3 C1 3
4 C1 4
5 C1 5
6 C2 6
7 C2 7
8 C2 8
9 C2 9
10 C2 10
11 C3 1
12 C3 2
13 C3 3
14 C3 4
15 C3 5
16 C4 6
17 C4 7
18 C4 8
19 C4 9
20 C4 10
df1_vector<-structure(as.numeric(df1$x2),names=as.character(df1$x1))
df1_vector
C1 C1 C1 C1 C1 C2 C2 C2 C2 C2 C3 C3 C3 C3 C3 C4 C4 C4 C4 C4
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例 2

 在线演示

set.seed(111)
y1<-LETTERS[1:20]
y2<-rnorm(20,0.5)
df2<-data.frame(y1,y2)
df2

输出

y1 y2
1 A 0.735220712
2 B 0.169264128
3 C 0.188376176
4 D -1.802345658
5 E 0.329123955
6 F 0.640278225
7 G -0.997426656
8 H -0.510188419
9 I -0.448475605
10 J 0.006037783
11 K 0.326325872
12 L 0.093401220
13 M 2.345636264
14 N 0.894054110
15 O 1.297528501
16 P -1.066665360
17 Q 0.414148991
18 R 0.140860519
19 S -0.693608967
20 T 0.864186737
df2_vector<-structure(as.numeric(df2$y2),names=as.character(df2$y1))
df2_vector
A B C D E F
0.735220712 0.169264128 0.188376176 -1.802345658 0.329123955 0.640278225
G H I J K L
-0.997426656 -0.510188419 -0.448475605 0.006037783 0.326325872 0.093401220
M N O P Q R
2.345636264 0.894054110 1.297528501 -1.066665360 0.414148991 0.140860519
S T
-0.693608967 0.864186737

示例 3

 在线演示

z1<-rep(c("String1","String2","String3","String4","String5"),each=4)
z2<-letters[20:1]
df3<-data.frame(z1,z2)
df3

输出

z1 z2
1 String1 t
2 String1 s
3 String1 r
4 String1 q
5 String2 p
6 String2 o
7 String2 n
8 String2 m
9 String3 l
10 String3 k
11 String3 j
12 String3 i
13 String4 h
14 String4 g
15 String4 f
16 String4 e
17 String5 d
18 String5 c
19 String5 b
20 String5 a
df3_vector<-structure(as.character(df3$z2),names=as.character(df3$z1))
df3_vector
String1 String1 String1 String1 String2 String2 String2 String2 String3 String3
"t" "s" "r" "q" "p" "o" "n" "m" "l" "k"
String3 String3 String4 String4 String4 String4 String5 String5 String5 String5
"j" "i" "h" "g" "f" "e" "d" "c" "b" "a"

更新时间:2020-08-21

379 次浏览

开启你的 职业生涯

完成课程获得认证

开始
广告