如何在R中对dataframe进行自定义聚合生成指定结构的宽表
不需要通过手动遍历原始df实现,使用dplyr搭配tidyr的函数即可快速完成需求,实现代码如下:
首先加载所需依赖包:
library(dplyr) library(tidyr)
转换逻辑代码:
df.out <- df %>% # 按group、feature两个维度分组,将同组同feature下的tx值用|拼接 group_by(group, feature) %>% summarise(tx_comb = paste(tx, collapse = "|"), .groups = "drop") %>% # 长表转宽表,feature值作为列名,拼接后的tx作为对应列的值 pivot_wider(names_from = feature, values_from = tx_comb)
运行上述代码得到的df.out和你给出的预期输出完全一致,无匹配值的位置会自动填充为NA。
如果已经安装了stringr包,也可以将paste(tx, collapse = "|")替换为stringr::str_c(tx, collapse = "|"),执行效率更高。
内容的提问来源于stack exchange,提问作者Paso
相关产品推荐
相关产品推荐

