R-将新向量添加到嵌套列表中



我只是在学习与R中的列表一起工作,我已经非常接近我想做的事情。我正在举手向正确的方向推一步:

my_data <- 
  data.frame(group = c(sample(c('A', 'B', 'C'), 20, replace = TRUE)), 
                      x = runif(100, 0, 10)) %>% 
  group_by(group) %>% 
  nest() %>% 
  mutate(number = sample(3:7, 3))

我想做什么:

很简单,真的。我想将一个新向量添加到嵌套列表("数据")中,其中包含来自"数字"向量的相应值。因此,例如,列表中第一个元素的前5行看起来像这样:

head(my_data$data[[1]],5) %>% mutate(y=4)

,但我不知道该怎么做!(显然我对上面的示例进行了核对。)

我已经尝试过:

大量的非列表,Unnest,Map,Pull的排列。我没有记录我尝试过的所有东西。

如果我正确理解您,您将尝试创建一个添加新列的函数:

require(tidyverse)
my_data <- my_data %>% 
  mutate(data = map(data, function(x) { 
    x %>% 
      mutate(y = 4)
    }))

结果:

my_data$data[1]
[[1]]
# A tibble: 30 x 2
        x     y
    <dbl> <dbl>
 1 5.97       4
 2 7.44       4
 3 9.96       4
 4 9.98       4
 5 0.0933     4
 6 1.45       4
 7 9.78       4
 8 6.88       4
 9 5.10       4
10 6.68       4

在情况下使用 purrr::map2,您有两个向量,可以迭代

library(tidyverse)
my_data <- my_data %>% mutate(data_mod=map2(data,number,cbind))

最新更新