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

My list-column:

library(tidyverse)

dataset<-as_tibble(matrix(rnorm(6*30,1000,100),ncol=6))
cluster<-kmeans(dataset,centers=3)
dataset$kmeans<-as.factor(cluster[['cluster']])
mylist<-split(dataset,dataset$kmeans)
names(mylist)<-str_c('dataset',seq_along(mylist))

obj<-dataset%>%
  group_by(kmeans)%>%
  nest()

Я пытаюсь:

obj%>%
  summarise_if(.data,is.numeric,sum)

Ошибка: невозможно преобразовать список в функцию

и

obj%>%
  map(~summarise_if(.data,is.numeric,sum))

Ошибка в UseMethod ("tbl_vars"): нет применимого метода для 'tbl_vars', примененного к объекту класса "rlang_data_pronoun"

среди другихпопытки ...

Итак, как мне применить dplyr функции в list-column?

1 Ответ

0 голосов
/ 19 января 2019

Решением является использование dplyr::pull в списке-столбце (obj$data):

library(tidyverse)

obj%>%
  pull(data)%>%
  map(~summarise_if(.,is.numeric,sum))

[[1]]
# A tibble: 1 x 6
      V1     V2     V3     V4     V5     V6
   <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
1 12865. 11787. 12864. 13443. 12548. 13170.

[[2]]
# A tibble: 1 x 6
      V1     V2     V3     V4     V5     V6
   <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
1 11655. 12197. 11379. 10023. 10659. 11154.

[[3]]
# A tibble: 1 x 6
     V1    V2    V3    V4    V5    V6
  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 5175. 6053. 6855. 6130. 6504. 5967.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...