plyr重命名功能不起作用

时间:2014-06-30 14:37:41

标签: r

我无法弄清楚为什么这个版本的plyr rename函数无效。

我有一个数据框,我有一个列,最终被命名为seq(var_slcut_trucknumber_min, var_slcut_trucknumber_max),因为我这样做了:

df_metbal_slcut <- as.data.frame(seq(var_slcut_trucknumber_min,var_slcut_trucknumber_max))

条款var_slcut_trucknumber_minvar_slcut_trucknumber_max被定义为另一列的最小值和最大值。

但是,尝试通过以下代码重命名时,

var_temp <- names(df_metbal_slcut)
df_metbal_slcut <- rename(df_metbal_slcut, c(var_temp="trucknumber"))

我收到如下错误:

The following `from` values were not present in `x`: var_temp

我不明白为什么。我知道我可以轻松地将其作为colnames(df_metbal_slcut)[1] <- "trucknumber",但我是一个R n00b,而我正在查看一个数据操作教程,该教程说学习plyr是要走的路,所以我在这里坚持

1 个答案:

答案 0 :(得分:1)

请改为尝试:

df_metbal_slcut <- rename(df_metbal_slcut, setNames("trucknumber",var_temp))

它不起作用的原因是c(var_temp = "trucknumber")创建了一个名为var_temp的命名向量,这不是你想要的。使用tag = value语法创建命名对象时,R不会评估变量。它假定您确实希望名称为var_temp

更广泛地说,在最初使用setNames再次创建数据框时更明智地命名列可能是有意义的。