【发布时间】:2016-12-02 17:52:13
【问题描述】:
尝试将列名作为索引或变量传递给tidyr::separate 时出错。
设置库和数据:
library(tidyr)
library(dplyr)
x <- data.frame(col1 = 1:4,
col2 = c("a,b,c","d,e,f","g,h,i","j,k,l"))
sep <- ","
colnameVar <- "col2"
这些工作(在 dplyr 中):
x %>% select(col2) %>% names
# [1] "col2"
x %>% select(colnameVar %>% as.name %>% eval) %>% names
# [1] "col2"
x %>% select(2) %>% names
# [1] "col2"
这样(单独):
x %>%
separate(col2,
paste("col2",1:3,sep="."),
sep = sep) %>% names
# [1] "col1" "col2.1" "col2.2" "col2.3"
但这失败了:
x %>%
separate(colnameVar %>% as.name %>% eval,
paste("col2",1:3,sep="."),
sep = sep) %>% names
错误:无效的列规范
这样:
x %>%
separate(2,
paste("col2",1:3,sep="."),
sep = sep) %>% names
错误:无效的列规范
这应该怎么做?
【问题讨论】: