在数据框中组合向量和列表列
combining vector and list columns within a data frame
我正在尝试确定如何将作为向量的列添加到作为同一数据框中的列表的列
library(tidyverse)
df <- data_frame(
dens = rnorm(1000),
id = sample(1:10, 1000, replace = TRUE),
size = sample(1:3, 1000, replace = TRUE)
) %>%
group_by(id, size) %>%
nest %>%
mutate(
dens_est = map(data, ~ KernSmooth::bkde(.$dens) %>%
bind_rows)
)
使用上面的结果,我想在 dens_est
数据框中添加一列,其中包含 size
列的关联值。
使用 mutate 和 map2:
df %>%
mutate(data = map2(data, size,
function(x, y) mutate(x, size = y)))
我们可以使用 map2
遍历 dens_est
和 size
列,并使用 mutate
为每个数据框创建 size
列。
set.seed(1234)
library(tidyverse)
df <- data_frame(
dens = rnorm(1000),
id = sample(1:10, 1000, replace = TRUE),
size = sample(1:3, 1000, replace = TRUE)
) %>%
group_by(id, size) %>%
nest %>%
mutate(
dens_est = map(data, ~ KernSmooth::bkde(.$dens) %>%
bind_rows)
) %>%
mutate(
dens_est = map2(dens_est, size, ~.x %>% mutate(Size = .y))
)
df$dens_est[[1]]
# # A tibble: 401 x 3
# x y Size
# <dbl> <dbl> <int>
# 1 -4.38 0.00000568 3
# 2 -4.35 0.0000118 3
# 3 -4.33 0.0000159 3
# 4 -4.30 0.0000185 3
# 5 -4.27 0.0000213 3
# 6 -4.25 0.0000246 3
# 7 -4.22 0.0000284 3
# 8 -4.20 0.0000327 3
# 9 -4.17 0.0000376 3
# 10 -4.14 0.0000432 3
# # ... with 391 more rows
我正在尝试确定如何将作为向量的列添加到作为同一数据框中的列表的列
library(tidyverse)
df <- data_frame(
dens = rnorm(1000),
id = sample(1:10, 1000, replace = TRUE),
size = sample(1:3, 1000, replace = TRUE)
) %>%
group_by(id, size) %>%
nest %>%
mutate(
dens_est = map(data, ~ KernSmooth::bkde(.$dens) %>%
bind_rows)
)
使用上面的结果,我想在 dens_est
数据框中添加一列,其中包含 size
列的关联值。
使用 mutate 和 map2:
df %>%
mutate(data = map2(data, size,
function(x, y) mutate(x, size = y)))
我们可以使用 map2
遍历 dens_est
和 size
列,并使用 mutate
为每个数据框创建 size
列。
set.seed(1234)
library(tidyverse)
df <- data_frame(
dens = rnorm(1000),
id = sample(1:10, 1000, replace = TRUE),
size = sample(1:3, 1000, replace = TRUE)
) %>%
group_by(id, size) %>%
nest %>%
mutate(
dens_est = map(data, ~ KernSmooth::bkde(.$dens) %>%
bind_rows)
) %>%
mutate(
dens_est = map2(dens_est, size, ~.x %>% mutate(Size = .y))
)
df$dens_est[[1]]
# # A tibble: 401 x 3
# x y Size
# <dbl> <dbl> <int>
# 1 -4.38 0.00000568 3
# 2 -4.35 0.0000118 3
# 3 -4.33 0.0000159 3
# 4 -4.30 0.0000185 3
# 5 -4.27 0.0000213 3
# 6 -4.25 0.0000246 3
# 7 -4.22 0.0000284 3
# 8 -4.20 0.0000327 3
# 9 -4.17 0.0000376 3
# 10 -4.14 0.0000432 3
# # ... with 391 more rows