我正在寻找一种方法来可靠地强制列表结构到data.frame或tibble,同时将一个或多个列保持为列表列。考虑以下列表结构:
d = data.frame(x = 1:10, y = 1.5*(1:10) + rnorm(10))
ex = list(label = "A", number = 1L, model = lm(y ~ x, data = d))
这并不是预期的那样:
lapply(ex, as_data_frame) %>% bind_rows()
因为"model“列中的lm对象在转换中被向量化。但是,在list中包装模型会得到预期的结果:
ex
我如何从purrr::map获得一个命名列表,就像使用plyr::dlply一样?我在这里提供了一个解释。可以看到,plyr::ldply返回一个命名列表,而purrr::map不返回。我还检查了2年前的一个类似问题(),但这并没有多大帮助,因为purrr::map没有被用于数据挖掘中的列表列,这就是我想要做的。
library(tidyverse)
library(plyr)
# creating a list of plots with purrr
plotlist_purrr <- iris %>%
dplyr::group_by(.data = ., Species)
我试图使用列表列制作许多模型,但失败了。
df <- tibble(id = 1:5, df = 1:5) %>%
nest(data = df)
在df中只有一个名为data的变量。我想从df中提取data的值,并将其放到ns()函数的第二个参数中。我尝试了三种方法,但都失败了。
# way 1: use df as second argument in ns()
df %>%
mutate(model = map(data, ~ lm(mpg ~ ns(disp, df), data = mtcars)))
# way 2: use . as secon
因此,如果我有两个列表,一个是没有重复的“主列表”,另一个是可能有重复的子集,我希望能够检查每个元素中有多少在次要子集列表中。 所以如果我有这些列表: a <- (a, b, c, d, e, f, g)
b <- (a, d, c, d, a, f, f, g, c, c) 我想确定列表a中的每个元素在列表b中出现的次数以及每次出现的频率。我的理想输出应该是一个r表,如下所示: c <- a b c d e f g
2 0 3 1 0 2 1 我一直在和%in%和table()一起思考这个问题
我有一个包含几个列的列表;我希望删除每个tibble中的前2列(不使用for循环)。
#Example data with tibble and list
w <- c(1, 2, 3, 4, 5)
x <- c(1, 2, 3, 4, 5)
y <- c(1, 2, 3, 4, 5)
z <- c(1, 2, 3, 4, 5)
tibble <- tibble(w, x, y, z)
list <- list(tibble, tibble, tibble, tibble)
#Remove the first 2 columns in th
我有一个这样的数据框架: df <- tibble(
i = rep(1:10, times = 5),
t = rep(1:5, each = 10)
) %>%
mutate(y = rnorm(50)) 我想应用一个函数,该函数将每个t的数据帧作为参数: f <- function(df){
return(lm(y ~ +1, data = df))
} 当我为带有管道操作符的嵌套数据框应用purrr::map时,我得到了错误。 # does not work
df_nested <- df %>%
nest(data = c
我正在寻找将列表列表转换为R中的数据的Tidyverse方法。
# Create a list of lists:
a <- seq(1,10,1)
b <- seq(1,20,2)
# Function to calculate the sum
# (just an example, I am aware of the base R sum())
sum_test <- function(a=a, b=b){
sum <- a+b
df <- cbind(a,b,sum)
return(df)
}
list_of_lists <- pu