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

例子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"

以上是 如何将R数据帧的两列转换为命名向量? 的全部内容, 来源链接: utcz.com/z/316344.html

回到顶部