【发布时间】:2019-04-19 02:04:11
【问题描述】:
我有以下功能
colr <- function(file){
a <- file %>%
read_xlsx()
ncol(a)
}
我想传递一个 tibble - 其中包含我的 excel 文件名的列给这个函数,并创建一个新列来告诉我 excel 电子表格中的列数。
所以我的 tibble(file.list) 是
> file.list
<chr>
file_a.xlsx
file_b.xlsx
file_c.xlsx
我想要以下
> file.list ncols
<chr> <int>
file_a.xlsx 10
file_b.xlsx 10
file_c.xlsx 2
这是我尝试过的
tibble(file.list) %>%
mutate(ncols = colr(file.list))
但我得到了错误
错误:
path必须是字符串
然后我尝试使用quo
tibble(file.list) %>%
mutate(ncols = colr(quo(file.list)))
我最终遇到了同样的错误。
我做错了什么?
【问题讨论】:
-
首先要检查它是否适用于
file.list[1] %>% read_xlsx(.,range = cell_cols("A:Z")) %>% ncol?此外,您可能需要包含 xlsx 文件的完整路径。 -
当您将单个文件名作为字符串传递给
colr时,它是否有效?例如,colr("file_a.xlsx"). -
我确实得到了一个整数返回
colr("file_a.xlsx") -
@RonakShah
file.list[1] %>% read_xlsx() %>% ncol工作 -
使用
purrr和dplyr,这段代码能运行吗?tibble(file.list) %>% mutate(ncols = map_int(file.list, colr))