如何使用 R 中的 setNames 更改单个列的名称?
r programmingserver side programmingprogramming更新于 2025/4/9 0:37:17
要使用 setNames 更改单个列的名称,我们需要指定需要更改的列名称。
例如,如果我们有一个名为 df 的数据框,其中包含三列,即 Var1、var2 和 Var3,并且我们想将 var2 更改为 Var2,那么我们可以使用以下命令 −
setNames(df,replace(names(df),names(df)=="var2","Var2"))
Example 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