添加数据框列中的所有值,其中每个单元格是另一个向量
Add All Values In A Data Frame Column Where Each Cell Is Another Vector
我的数据框结构如下:
MonthYear Total
01/2020 c(1, 1, 1, 1, 1...)
02/2020 c(2, 14, 6, 12, 91...)
... ...
如何制作这个数据框,以便我可以对每个向量中的所有值求和并将它们再次存储在数据框中?所以,假设第一个向量的总和是 100,我怎样才能得到这个总和并将它存储在我的数据框中?
到目前为止,我已尝试进行聚合,但返回了一个错误。我的聚合看起来像这样:
> aggregate(df$total ~ df$MonthYear, df, FUN = sum
,但是,在执行此操作时,出现向量列的空变量错误,我不确定如何解决此问题。
假设 Total
是一个数值向量列表,我们可以通过对列表的每个元素应用 sum
函数来获得值的总和:
library(tidyverse)
tibble(
MonthYear = c("01/2020", "02/2020"),
Total = list(rep(1, 100), c(2,14,6,12,91))
) %>%
mutate(Total = map_dbl(Total, sum))
# A tibble: 2 x 2
MonthYear Total
<chr> <dbl>
1 01/2020 100
2 02/2020 125
这也是一个简单的基础 R 解决方案。
df$Total <- lapply(lapply(df$Total, unlist), sum)
输出
MonthYear Total
1 01/2020 20.50097
2 02/2020 352.6011
3 03/2020 112.8006
数据
df <- structure(list(
MonthYear = c("01/2020", "02/2020", "03/2020"),
Total = list(
c(
2.35268858028576, 0.749567511957139, 9.35646147234365, 1.57167825149372, 6.47057350026444
),
c(
19.7490084229503, 6.70629078173079, 49.3116769392509, 12.3336209286936, 29.0551994147245,
40.7369665871374, 54.9186405551154, 73.569026516052, 22.1695927530527, 44.051097095944
),
c(
8.96286227740347, 14.6749551640823, 14.2950962111354, 16.624439577572, 17.731322417967,
19.0528914798051, 11.0123344371095, 10.4467153223231
)
)
),
row.names = c(NA, -3L),
class = "data.frame")
我的数据框结构如下:
MonthYear Total
01/2020 c(1, 1, 1, 1, 1...)
02/2020 c(2, 14, 6, 12, 91...)
... ...
如何制作这个数据框,以便我可以对每个向量中的所有值求和并将它们再次存储在数据框中?所以,假设第一个向量的总和是 100,我怎样才能得到这个总和并将它存储在我的数据框中?
到目前为止,我已尝试进行聚合,但返回了一个错误。我的聚合看起来像这样:
> aggregate(df$total ~ df$MonthYear, df, FUN = sum
,但是,在执行此操作时,出现向量列的空变量错误,我不确定如何解决此问题。
假设 Total
是一个数值向量列表,我们可以通过对列表的每个元素应用 sum
函数来获得值的总和:
library(tidyverse)
tibble(
MonthYear = c("01/2020", "02/2020"),
Total = list(rep(1, 100), c(2,14,6,12,91))
) %>%
mutate(Total = map_dbl(Total, sum))
# A tibble: 2 x 2
MonthYear Total
<chr> <dbl>
1 01/2020 100
2 02/2020 125
这也是一个简单的基础 R 解决方案。
df$Total <- lapply(lapply(df$Total, unlist), sum)
输出
MonthYear Total
1 01/2020 20.50097
2 02/2020 352.6011
3 03/2020 112.8006
数据
df <- structure(list(
MonthYear = c("01/2020", "02/2020", "03/2020"),
Total = list(
c(
2.35268858028576, 0.749567511957139, 9.35646147234365, 1.57167825149372, 6.47057350026444
),
c(
19.7490084229503, 6.70629078173079, 49.3116769392509, 12.3336209286936, 29.0551994147245,
40.7369665871374, 54.9186405551154, 73.569026516052, 22.1695927530527, 44.051097095944
),
c(
8.96286227740347, 14.6749551640823, 14.2950962111354, 16.624439577572, 17.731322417967,
19.0528914798051, 11.0123344371095, 10.4467153223231
)
)
),
row.names = c(NA, -3L),
class = "data.frame")