mutate_at用于包含空格的列名

时间:2016-09-09 15:45:21

标签: r dplyr whitespace

拥有data.frame(tibble),如下所示:

require(dplyr)
df_org <- df <- data_frame(a=1:2, b=c("A", "B"))
colnames(df) <- paste("X", c("Y", "Z"))

# A tibble: 2 × 2
  `X Y` `X Z`
  <int> <chr>
1     1     A
2     2     B

使用mutate_at会引发以下错误:

df_org %>% mutate_at(1, sum) # Works as expected
df %>% mutate_at(1, sum) # Error
  

解析时出错(text = x):: 1:3:意外符号
  1:X Y
  -------- ^

这是一个错误吗?我做错了吗?

P.S .: 我在OS X El Capitan 10.11.6上使用dplyr 0.5.0

1 个答案:

答案 0 :(得分:4)

如果使用vars选择列,则按预期工作。我不确定是否需要使用vars这样的预期与否。

df %>% mutate_at(vars(1), sum)

# A tibble: 2 x 2
    X Y   X Z
  <int> <chr>
1     3     A
2     3     B