Как передать столбец имен файлов для изменения и вернуть количество столбцов в dplyr - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть следующая функция


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)))

Я закончил с той же ошибкой.

Что я делаю не так?

1 Ответ

2 голосов
/ 19 апреля 2019

Как предложено в комментарии @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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...