R: Ошибка при запуске кода примера для reduce () из пакета purr

Я хочу использовать reduce () для попарного объединения переменного количества столбцов из фрейма данных. Похоже, что reduce () выполнит эту работу, поэтому я попробовал несколько примеров кода и получил эту ошибку. Я использую RStudio, версия 1.0.136

> require(tidyverse)

> x <- list(c(0, 1), c(2, 3), c(4, 5))
> x %>% reduce(c)
# Error: `x` must be a vector (not a NULL) 
> sessionInfo()
# R version 3.3.2 (2016-10-31)
# Platform: x86_64-apple-darwin13.4.0 (64-bit)
# Running under: OS X El Capitan 10.11.6

# locale:
# [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

# attached base packages:
# [1] stats     graphics  grDevices utils     datasets  methods   base     

# other attached packages:
# [1] dplyr_0.5.0     purrr_0.2.2     readr_1.0.0     tidyr_0.6.1     tibble_1.2      ggplot2_2.2.1  
# [7] tidyverse_1.1.1

# loaded via a namespace (and not attached):
 # [1] Rcpp_0.12.9      xml2_1.1.1       magrittr_1.5     hms_0.3          rvest_0.3.2      mnormt_1.5-5    
 # [7] munsell_0.4.3    colorspace_1.3-2 lattice_0.20-34  R6_2.2.0         httr_1.2.1       stringr_1.1.0   
# [13] plyr_1.8.4       tools_3.3.2      parallel_3.3.2   grid_3.3.2       broom_0.4.1      nlme_3.1-130    
# [19] gtable_0.2.0     psych_1.6.12     DBI_0.5-1        modelr_0.1.0     readxl_0.1.1     lazyeval_0.2.0  
# [25] assertthat_0.1   reshape2_1.4.2   haven_1.0.0      stringi_1.1.2    forcats_0.2.0    scales_0.4.1    
# [31] lubridate_1.6.0  jsonlite_1.2     foreign_0.8-67  

P.S. Это мой первый вопрос, поэтому я попытался ошибиться, указав слишком много информации. Сообщите мне, если мне нужно предоставить другую / больше / меньше информации.


person John_W    schedule 01.02.2017    source источник
comment
Невозможно воспроизвести ошибку с теми же версиями пакета. Но попробуйте использовать Reduce из base: x %>% Reduce(c, .).   -  person Abdou    schedule 01.02.2017
comment
Спасибо @Abdou! Странно, что вы не смогли воспроизвести это. Может стоит добавить версию RStudio.   -  person John_W    schedule 01.02.2017
comment
У вас случайно есть переменная с именем c в вашем пространстве имен / среде? Я просто запустил c <- c(2,2,4,4) на своей консоли и снова запустил вашу связанную операцию, и она выдала ту же ошибку, что и ваша. Когда я удаляю вновь созданную переменную (rm(c)), она снова работает. Может быть, в этом проблема?   -  person Abdou    schedule 01.02.2017
comment
Ах вот оно что! Лол, ошибка новичка. Еще раз спасибо, @Abdou.   -  person John_W    schedule 01.02.2017
comment
@John_W также обратите внимание на различия между reduce и Reduce в R. Один - от base, а другой - от purrr. попробуйте? Уменьшить и? Уменьшить   -  person Dan    schedule 07.03.2017


Ответы (1)


Как сказано в комментариях, была переменная с именем c, которая маскировала функцию c.

Никогда не называйте ничего c, кроме, может быть, элементов списка или имен столбцов.

person Moody_Mudskipper    schedule 27.10.2017