如何在 R-Programming 中匹配和替换存储在 R 数据框中的列名?

如果我们有一个数据框,其中包含一列与数据框的列名匹配的列名和另一列具有不同值的列,那么我们可以将这些不同的值设置为具有匹配列名的数据框的新列名.

这可以在匹配功能的帮助下完成。查看以下示例以了解其工作原理。

示例 1

以下代码段创建了一个示例数据框 -

x1<-rnorm(20)

x2<-rnorm(20)

x3<-rnorm(20)

df1<-data.frame(x1,x2,x3)

df1

创建了以下数据框

            x1          x2           x3

1   0.76231437 -0.18459872 -0.836848620

2   0.31998649  1.24599469  0.096976964

3   0.11319510 -1.19200362 -0.824255747

4   0.47570366  0.24791478  0.355295166

5  -0.84546806  1.05928526 -1.073653485

6  -1.89667914  0.92187888  1.552141225

7  -1.81604483  0.05974304 -0.244209195

8   0.05762202  0.14238099  0.957877205

9  -0.79539907  0.42396450  0.219413291

10  0.47248362  2.44519391 -0.126831024

11  0.91802738 -0.84282349  1.577785667

12 -1.30378165  1.04226653 -0.528164742

13  0.88999575  1.74773475  1.409087713

14 -0.43192360  0.11203207  0.976614195

15 -0.68683934  0.67849795 -0.004272223

16 -0.68894471  1.33377663 -0.397701119

17  1.06729808 -0.04649078  0.578908343

18 -0.73322670 -0.52255298  0.355650527

19  0.28593460 -1.19460885 -0.094308012

20  0.76086277 -0.38646442 -0.484786025

将以下代码添加到上述代码段 -

x1<-rnorm(20)

x2<-rnorm(20)

x3<-rnorm(20)

df1<-data.frame(x1,x2,x3)

df1_col<-data.frame(Var1=c("x","y","z"),Var2=c("x1","x2","x3"))

df1_col

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

  Var1 Var2

1   x    x1

2   y    x2

3   z    x3

要将 df1 的列名更改为上面创建的数据框中 df1_col 中 Var1 中的值,请将以下代码添加到上述代码段中 -

x1<-rnorm(20)

x2<-rnorm(20)

x3<-rnorm(20)

df1<-data.frame(x1,x2,x3)

df1_col<-data.frame(Var1=c("x","y","z"),Var2=c("x1","x2","x3"))

names(df1) <- df1_col$Var1[match(names(df1),df1_col$Var2)]

df1

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

           x y z

1   0.76231437 -0.18459872 -0.836848620

2   0.31998649  1.24599469  0.096976964

3   0.11319510 -1.19200362 -0.824255747

4   0.47570366  0.24791478  0.355295166

5  -0.84546806  1.05928526 -1.073653485

6  -1.89667914  0.92187888  1.552141225

7  -1.81604483  0.05974304 -0.244209195

8   0.05762202  0.14238099  0.957877205

9  -0.79539907  0.42396450  0.219413291

10  0.47248362  2.44519391 -0.126831024

11  0.91802738 -0.84282349  1.577785667

12 -1.30378165  1.04226653 -0.528164742

13  0.88999575  1.74773475  1.409087713

14 -0.43192360  0.11203207  0.976614195

15 -0.68683934  0.67849795 -0.004272223

16 -0.68894471  1.33377663 -0.397701119

17  1.06729808 -0.04649078  0.578908343

18 -0.73322670 -0.52255298  0.355650527

19  0.28593460 -1.19460885 -0.094308012

20  0.76086277 -0.38646442 -0.484786025

示例 2

以下代码段创建了一个示例数据框 -

a<-rpois(20,2)

b<-rpois(20,5)

c<-rpois(20,2)

df2<-data.frame(a,b,c)

df2

创建了以下数据框

   a b c

1  3 6 0

2  1 7 5

3  2 5 3

4  1 1 2

5  4 9 2

6  0 3 3

7  1 6 1

8  0 6 3

9  4 6 2

10 1 4 2

11 3 2 2

12 0 6 2

13 1 4 2

14 0 7 2

15 4 2 2

16 2 4 5

17 2 3 0

18 4 5 4

19 3 3 1

20 3 4 2

将以下代码添加到上述代码段 -

a<-rpois(20,2)

b<-rpois(20,5)

c<-rpois(20,2)

df2<-data.frame(a,b,c)

df2_col<-data.frame(Ranks=c("Rank1","Rank2","Rank3"),Var=c("a","b","c"))

df2_col

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

  Ranks Var

1 Rank1  a

2 Rank2  b

3 Rank3  c

要将 df2 的列名更改为上面创建的数据框中 df2_col 中 Var 中的值,请将以下代码添加到上述代码段中 -

a<-rpois(20,2)

b<-rpois(20,5)

c<-rpois(20,2)

df2<-data.frame(a,b,c)

df2_col<-data.frame(Ranks=c("Rank1","Rank2","Rank3"),Var=c("a","b","c"))

names(df2)<-df2_col$Ranks[match(names(df2),df2_col$Var)]

df2

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

 Rank1 Rank2 Rank3

1    3     6    0

2    1     7    5

3    2     5    3

4    1     1    2

5    4     9    2

6    0     3    3

7    1     6    1

8    0     6    3

9    4     6    2

10   1     4    2

11   3     2    2

12   0     6   2

13   1     4   2

14   0     7   2

15   4     2   2

16   2     4   5

17   2     3   0

18   4     5   4

19   3     3   1

20   3     4   2

以上是 如何在 R-Programming 中匹配和替换存储在 R 数据框中的列名? 的全部内容, 来源链接: utcz.com/z/347478.html

回到顶部