Проверка количества столбцов в тидиверсе - PullRequest
0 голосов
/ 29 сентября 2019

Я хотел бы проверить, совпадает ли число столбцов кадра данных с ожидаемым количеством столбцов.Код должен помещаться в нисходящий конвейер.

Однако этот код не работал:

library(tidyverse)

# does not work:
mtcars %>% 
  select_if(negate(is.numeric)) %>% 
  if(ncol(.) > 0) stop("there should be no non-numeric column!")
#> Error in if (.) ncol(.) > 0 else stop("there should be no non-numeric column!"): argument is of length zero


# does work:
mtcars2 <- mtcars %>% 
  select_if(negate(is.numeric)) 
if(ncol(mtcars2) > 0) stop("there should be no non-numeric column!")

Создан в 2019-09-29 пакетом представ. (v0.3.0)

In показывает, что «точка» (.) Неправильно оценена / поддерживается ncol().

Есть ли (простой) способ проверить количество столбцов в стиле tidyverse-pipe?

1 Ответ

1 голос
/ 29 сентября 2019

Я не уверен, что именно вы пытаетесь сделать, но чтобы ваш код работал в потоке тока, вы можете окружить свой блок if фигурными скобками:

library(dplyr)
mtcars %>% 
  select_if(negate(is.numeric)) %>% 
  {if(ncol(.) > 0) stop("there should be no non-numeric column!")}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...