【发布时间】:2016-11-02 20:59:04
【问题描述】:
我已经尝试了 dplyr 中重命名功能的多种变体。 我有一个从名为 alldata 的数据库调用的数据框,以及名为 WindDirection:N 的数据框中的一列。我正在尝试将其重命名为风向。我知道创建包含空格的变量名称不是一个好习惯,但我希望将其命名为这样,以提高闪亮的 selectInput 列表的可读性,即使我决定将其重命名为 WindDirection,我也会收到所有相同的错误消息. 我试过了:
rename(alldata, Wind Direction = WindDirection:N)
给出错误信息:
错误:“重命名(所有数据,风向”)中出现意外符号
rename(alldata, `Wind Direction` = `WindDirection:N`)
不给出错误信息,但也不重命名变量
rename(alldata, "Wind Direction" = "WindDirection:N")
给出错误信息:
错误:要重命名的参数必须是不带引号的变量名。争论风向不是。
然后我尝试了相同的 3 种相反顺序的组合(因为我知道 plyr 就是这样工作的,即使我没有在我的代码前面使用 library 命令调用它)将旧变量放在第一位,新变量具有类似错误消息的变量 2nd。
然后我尝试指定包,因为我在下面有 1 个示例,并再次尝试了所有 6 种组合。
dplyr::rename(alldata, `Wind Direction` = `WindDirection:N`)
与第一次类似的错误消息。
我已使用以下线程尝试自己执行此操作。 Replacement for "rename" in dplyr
【问题讨论】:
-
使用反引号。
rename(`Wind Direction` = WindDirection) -
@eipi10 我试过了,代码在控制台中显示整个数据框,但没有重命名变量。
-
嗯,这是因为您必须分配新的 data.frame
alldata <- rename(alldata,...这就是 dplyr 的工作原理 -
names(alldata)[names(alldata)=="Wind Direction"] <- "WindDirection" -
谢谢@agenis 的工作