我无法弄清楚为什么这个版本的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_min
和var_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是要走的路,所以我在这里坚持
答案 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
再次创建数据框时更明智地命名列可能是有意义的。