tibbles inside tibbles 到列表
Tibbles inside tibbles to lists
我有一个函数可以转换存储在列表中的小标题存储在小标题中。这是因为 do
函数在使用时会这样做。
然后我应用一个函数来过滤掉某些观察结果。
但是,这个函数 returns 是一个 tibble 而不是一个列表,所以它作为一个 tibble 存储在 tibble 而不是一个列表中。
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))
当应用于 iris
数据时,x
在第二列显示三个元素,<list [1]>
、<list [1]>
和 <tibble [0 x 1]>
。所有这些都应该是列表。如何将 tibble 中的 tibble 更改为包含 tibble 的列表?
如果我们需要list
,那么将tibble
的输出包装在函数
中的list
中
filter_fun <- function(x, n){
if(any(n > 2)){
filter(as_tibble(as.data.frame(x)), x > 2 ) %>% list(.)
} else x
}
我有一个函数可以转换存储在列表中的小标题存储在小标题中。这是因为 do
函数在使用时会这样做。
然后我应用一个函数来过滤掉某些观察结果。
但是,这个函数 returns 是一个 tibble 而不是一个列表,所以它作为一个 tibble 存储在 tibble 而不是一个列表中。
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))
当应用于 iris
数据时,x
在第二列显示三个元素,<list [1]>
、<list [1]>
和 <tibble [0 x 1]>
。所有这些都应该是列表。如何将 tibble 中的 tibble 更改为包含 tibble 的列表?
如果我们需要list
,那么将tibble
的输出包装在函数
list
中
filter_fun <- function(x, n){
if(any(n > 2)){
filter(as_tibble(as.data.frame(x)), x > 2 ) %>% list(.)
} else x
}