У меня есть функция, которая преобразует тиблы, хранящиеся в списках, которые хранятся внутри тиббла. Это потому, что функция do
делает это при использовании.
Затем я применяю функцию, которая отфильтровывает определенные наблюдения.
Однако эта функция возвращает тиббл, а не список, поэтому она сохраняется как тиббл внутри тиббла, а не как список.
library(dplyr)
data(iris)
# Store observations in a list for this example
iris <- iris %>%
group_by(Species) %>%
do(obs = list(.$Sepal.Length))
iris$n <- 1:3
# The function that filters data
filter_fun <- function(x, n){
if(any(n > 2)){x <- filter(as_tibble(as.data.frame(x)), x > 2)
} else {x <- x}
return(x)}
# This makes two lists and a tibble inside a tibble instead of three lists
x <- iris %>%
group_by(Species) %>%
do(filtered = filter_fun(x = .$obs, n = .$n))
x
показывает три элемента во втором столбце, <list [1]>
, <list [1]>
и <tibble [0 x 1]>
применительно к iris
данным. Все они должны быть списками. Как изменить тиббл внутри тиббла на список, содержащий тиббл?