dplyr - 重命名readr创建的列[EMPTY]

时间:2015-10-29 12:05:13

标签: r dplyr readr

使用readr_0.1.1读取带有缺少字段名称的.csv文件时,名称会自动设置为[EMPTY]

library("readr")
library("dplyr")
df <- read_csv(",foo\n1,bar")

> names(df)
[1] "[EMPTY]" "foo" 

我正在尝试使用"[EMPTY]"重命名dplyr_0.4.2但我无法找到正确的解决方案。

我试过了:

> rename(df, baz = [EMPTY])
Error: unexpected '[' in "rename(df, baz = ["

> rename_(df, "baz" = "[EMPTY]")
Error in parse(text = x) : <text>:1:1: unexpected '['
1: [
    ^

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

您可以使用

dplyr::rename(df, baz = `[EMPTY]`)

我们正在使用反引号,而不是引号,因为我们指的是非标准变量名称&#34;例如:

df$`[EMPTY]`

来自?Quotes

  

标识符包含一系列字母,数字,句点(。)   和下划线。它们不能以数字或下划线开头,   也没有一个句号后跟一个数字。保留字无效   标识符

     

字母的定义取决于当前的区域设置,但仅限于   ASCII数字被认为是数字。

     

这种标识符也称为句法名称,可以使用   直接在R代码中。几乎总是,可以使用其他名称   他们被引用了。首选引号是反引号(`)和deparse   通常会使用它,但在许多情况下单或双   可以使用引号(因为字符常量通常会转换为   一个名字)。