我具有以下功能
colr <- function(file){
a <- file %>%
read_xlsx()
ncol(a)
}
我要传递一个小标题-该函数包含我的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)))
我最终遇到了同样的错误。
我在做什么错了?
答案 0 :(得分:2)
如@Lyngbakr在评论中所建议,我们可以为每个map_int
使用rowwise
或file.list
library(dplyr)
library(purrr)
tibble::tibble(file.list) %>%
mutate(ncols = map_int(file.list, colr))
tibble::tibble(file.list) %>%
rowwise() %>%
mutate(ncols = colr(file.list))