如何在R中使用setNames更改单个列的名称?
要使用setNames更改单个列的名称,我们需要指定需要更改的列名。
例如,如果我们有一个名为df的数据框,其中包含三列,例如Var1、var2和Var3,并且我们想将var2更改为Var2,那么我们可以使用如下命令:
setNames(df,replace(names(df),names(df)=="var2","Var2"))
示例1
以下代码片段创建了一个示例数据框:
x<-rnorm(20) x1<-rnorm(20) df1<-data.frame(x,x1) df1
输出
创建了以下数据框:
x x1 1 0.885142314 -0.18025261 2 -0.048954839 0.87720112 3 0.896212666 -0.53714354 4 0.539095496 -0.19380810 5 -1.706763224 0.79608177 6 -1.628122107 -1.17570164 7 -1.000949495 0.09243436 8 1.344899293 -0.34504828 9 0.290659812 0.57493564 10 -1.366119792 0.39442545 11 -0.002044629 -0.60124159 12 1.056147083 -0.05670359 13 1.245766258 -0.91321178 14 1.202689649 0.42440362 15 -1.238028330 -1.31709063 16 0.962875354 1.43057923 17 0.692604922 -0.60277152 18 1.721352577 0.67629134 19 -2.373829503 -0.09540660 20 0.031280271 1.90790870
为了将列x1的名称更改为y,请将以下代码添加到上述代码片段中:
x<-rnorm(20) x1<-rnorm(20) df1<-data.frame(x,x1) setNames(df1,replace(names(df1),names(df1)=="x1","y"))
输出
如果您将上述所有代码作为单个程序执行,它将生成以下输出:
x y 1 0.885142314 -0.18025261 2 -0.048954839 0.87720112 3 0.896212666 -0.53714354 4 0.539095496 -0.19380810 5 -1.706763224 0.79608177 6 -1.628122107 -1.17570164 7 -1.000949495 0.09243436 8 1.344899293 -0.34504828 9 0.290659812 0.57493564 10 -1.366119792 0.39442545 11 -0.002044629 -0.60124159 12 1.056147083 -0.05670359 13 1.245766258 -0.91321178 14 1.202689649 0.42440362 15 -1.238028330 -1.31709063 16 0.962875354 1.43057923 17 0.692604922 -0.60277152 18 1.721352577 0.67629134 19 -2.373829503 -0.09540660 20 0.031280271 1.90790870
示例2
以下代码片段创建了一个示例数据框:
a<-rpois(20,5) a_2<-rpois(20,2) df2<-data.frame(a,a_2) df2
输出
创建了以下数据框:
a a_2 1 5 7 2 3 2 3 7 2 4 5 0 5 6 0 6 4 1 7 8 3 8 6 1 9 7 2 10 6 3 11 4 0 12 3 2 13 5 0 14 7 2 15 3 1 16 9 3 17 2 2 18 4 1 19 2 7 20 1 1
为了将列a_2的名称更改为b,请将以下代码添加到上述代码片段中:
a<-rpois(20,5) a_2<-rpois(20,2) df2<-data.frame(a,a_2) df2<-data.frame(a,a_2) setNames(df2,replace(names(df2),names(df2)=="a_2","b"))
输出
如果您将上述所有代码作为单个程序执行,它将生成以下输出:
a b 1 5 7 2 3 2 3 7 2 4 5 0 5 6 0 6 4 1 7 8 3 8 6 1 9 7 2 10 6 3 11 4 0 12 3 2 13 5 0 14 7 2 15 3 1 16 9 3 17 2 2 18 4 1 19 2 7 20 1 1
广告