如果名称与R中的列匹配,如何组合数据框和命名向量?

如果我们有一个数据帧,其中包含一个字符列和一个命名向量,其名称与数据帧的字符列中的名称相同,则可以通过使用match函数适当定义名称和字符列。请查看以下示例,了解如何完成此操作。

示例

考虑下面的数据帧df1和向量v1-

df1<-data.frame(ID=LETTERS[1:20],x1=rpois(20,2))

df1

输出结果
  ID  x1

1  A  0

2  B  3

3  C  2

4  D  0

5  E  0

6  F  1

7  G  3

8  H  3

9  I  2

10 J  5

11 K  2

12 L  2

13 M  0

14 N  2

15 O  3

16 P  1

17 Q  1

18 R  3

19 S  2

20 T  2

示例

vector1<-rnorm(20)

names(vector1)<-LETTERS[1:20]

vector1

输出结果
       A          B           C           D            E         F

-1.65864624 -0.72535815 -0.03602353 -0.20926615 -1.09707354 -1.09361827

      G         H          I           J           K           L

0.24223290 1.50364961 2.29867732 -0.35459921 -1.78608099 -0.72382906

      M         N           O          P           Q          R

0.12124456 0.76206838 -0.43075989 2.25536662 1.59808504 -0.57818726

        S         T

-0.40555227 0.66445552

匹配列ID和vector1-

示例

df1$vector1<-vector1[match(df1$ID,names(vector1))]

df1

输出结果
    ID  x1  vector1

1   A  0   -1.65864624

2   B  3   -0.72535815

3   C  2   -0.03602353

4   D  0   -0.20926615

5   E  0   -1.09707354

6   F  1   -1.09361827

7   G  3    0.24223290

8   H  3    1.50364961

9   I  2    2.29867732

10  J  5   -0.35459921

11  K  2   -1.78608099

12  L  2   -0.72382906

13  M  0    0.12124456

14  N  2    0.76206838

15  O  3   -0.43075989

16  P  1    2.25536662

17  Q  1    1.59808504

18  R  3   -0.57818726

19  S  2   -0.40555227

20  T  2    0.66445552

示例

df2<-data.frame(S.No=letters[1:20],x1=rpois(20,10))

df2

输出结果
 S.No x1

1  a   9

2  b   8

3  c   9

4  d   6

5  e  13

6  f   3

7  g  13

8  h   9

9  i   9

10 j   6

11 k  12

12 l   6

13 m   7

14 n  11

15 o   6

16 p  21

17 q   9

18 r  13

19 s   7

20 t   8

示例

vector2<-rnorm(20)

names(vector2)<-letters[1:20]

vector2

输出结果
     a             b            c             d          e           f

-1.547152763 -1.111071378 -1.358744699 -0.462245640 0.167145269 -0.635510940

     g             h            i            j           k           l

0.020973365 0.258797947 0.381109857 -0.001844913 0.198083754 -0.057121043

     m             n            o            p           q           r

-0.319798254 -1.597529879 -0.403896403 0.577767115 -1.237463132 -0.734332249

    s             t

-0.252412566 0.957530025

匹配列S.No和向量2-

示例

df2$vector2<-vector2[match(df2$S.No,names(vector2))]

df2

输出结果
   S.No x1  vector2

1  a    9  -1.547152763

2  b    8  -1.111071378

3  c    9  -1.358744699

4  d    6  -0.462245640

5  e   13   0.167145269

6  f    3  -0.635510940

7  g   13   0.020973365

8  h    9   0.258797947

9  i    9   0.381109857

10 j    6  -0.001844913

11 k   12   0.198083754

12 l    6  -0.057121043

13 m    7  -0.319798254

14 n   11  -1.597529879

15 o    6  -0.403896403

16 p   21   0.577767115

17 q    9  -1.237463132

18 r   13  -0.734332249

19 s    7  -0.252412566

20 t    8   0.957530025

以上是 如果名称与R中的列匹配,如何组合数据框和命名向量? 的全部内容, 来源链接: utcz.com/z/358857.html

回到顶部