嵌套数据列统计量Bootstrapping计算及整洁格式结果获取
实现代码
你可以在已生成的df2基础上追加如下管道操作即可得到预期结果:
df_final <- df2 %>% rowwise() %>% mutate( # 提取原始数据列名 data_names = list(colnames(data)), # 转换t0格式方便后续展开 t0 = list(as.vector(t0)), # 将boot返回的t矩阵按列拆分,每列对应一个指标的所有自助结果 t = list(asplit(t, 2)) ) %>% # 同时展开三个长度匹配的列表列,每个分组对应3行结果 unnest(cols = c(data_names, t0, t)) %>% # 按预期顺序调整列 select(country, group, data_names, t0, t)
逻辑说明
- 先用
rowwise()对每个分组的嵌套行做逐行处理,保证生成的三个列表列元素长度完全对应(均为3,对应3个value指标) colnames(data)直接提取嵌套数据框的原始列名,作为data_names的取值asplit(t, 2)按列拆分自助结果矩阵,每一列对应一个指标的所有次自助计算结果,刚好和列名、t0的取值一一对应- 最后同时展开三个长度一致的列表列,即可得到每个country+group分组下3行、总共18行的目标结果
如果不需要保留原始data列,在select步骤中加-data即可移除。
内容的提问来源于stack exchange,提问作者deschen
相关产品推荐
相关产品推荐

