首页 文章

在R中运行简单的'rename'函数时出现错误消息

提问于
浏览
28

下面是我在互联网上找到的一个非常简单的数据框示例 . 在我的机器上在RStudio中运行它会发出一条错误消息:

错误:必须命名所有要重命名的参数 .

rename 函数似乎很直接,但没有找出原因 .

library("dplyr")

d <- data.frame(alpha=1:3, beta=4:6, gamma=7:9)
d
#   alpha beta gamma
# 1     1    4     7
# 2     2    5     8
# 3     3    6     9

rename(d, c("beta"="two", "gamma"="three"))

#Error: All arguments to rename must be named.

5 回答

  • 2

    迈克,你的命令是有效的,但对于“plyr”包 . 如果在同一脚本中加载“dplyr”,则会出现您提到的错误 .

    因此,请尝试以下方法:

    library("plyr")
    d <- data.frame(alpha=1:3, beta=4:6, gamma=7:9)
    plyr::rename(d, c("beta"="two", "gamma"="three"))
    

    请注意 sessionInfo() 有助于跟踪加载(附加)的包 .

  • 49

    您必须为现有列名称和新名称使用不带引号的名称 . 另请注意,新名称显示在左侧 .

    试试这个:

    rename(d, two = beta, three = gamma)
    
      alpha two three
    1     1   4     7
    2     2   5     8
    3     3   6     9
    
  • 19

    当我尝试在分组数据集上使用rename_all时,我也遇到了这个错误 .

    例如:

    as_tibble( mtcars ) %>% group_by(cyl) %>% rename_all(toupper)
    

    将产生OP所述的错误 .

    要解决,请使用ungroup()

    as_tibble( mtcars ) %>% group_by(cyl) %>%  ungroup() %>% rename_all(toupper)
    
  • 4

    如果你使用的是dplyr而不是plyr,那么语法就会略有不同 . 我遇到了这个麻烦并使用以下方法解决了它:

    df <- df %>% rename(new_name=old_name)

    或者在你的情况下:

    d <- d %>% rename(two=beta,three=gamma)
    
  • 0

    虽然这个问题已经过时并且已经得到了回答,但我遇到了同样的问题 . 安装“reshape”包为我解决了这个问题 .

    install.packages("reshape")
    library(reshape)
    

    现在下面的代码应该可以正常工作 .

    rename(d, c(beta="two", gamma="three"))
    

    谢谢 .

相关问题