r - 如何转换这个数据框?排序因子和组合
问题描述
我有这个数据框
df<-data.frame(ID=c(1,1,2,2,2),A=c(1,2,1,2,3),B=c("A","T","T","A","G"))
ID A B
1 1 1 A
2 1 2 T
3 2 1 T
4 2 2 A
5 2 3 G
我需要这个汇总表
summary_df <- data.frame(ID = c(1,2), sort_factor_and_combin_B = c("A-T","A-T-G"))
ID sort_factor_and_combin_B
1 1 A-T
2 2 A-T-G
无论 A 列的顺序如何,我都想创建一个列,该列包含按字母顺序与每个 ID 具有的 B 列中的因子连接的字符。
2.同时我也想要一个按照A的顺序加入的列。
你有什么主意吗?
谢谢你!
解决方案
我们可以用tapply()
tmp1 <- tapply(df$B, df$ID, function(x){
paste(sort(x), collapse = "-")
})
# cbind to desired format
cbind("ID" = unique(df$ID),
"sort_factor_and_combin_B" = tmp1)
# ID sort_factor_and_combin_B
# 1 "1" "A-T"
# 2 "2" "A-G-T"
推荐阅读
- r - How to use a value not in the scope of a function?
- html - 与线引导连接的圆形图像
- android - CameraSource CameraSourcePreview GraphicOverlay 的 gradle 实现是什么
- macos - The canonical way, if any, of launching a process on Mac OSX if a request comes through on a port?
- angularjs - 对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头包含多个值
- javascript - Dropdown with autocomplete overlaps with other dropdown with autocomplete or a radio button in a repeated field
- c# - 有没有办法使用 c# 找到其他项目(不是启动项目)中存在的类文件的路径?
- bar-chart - 用渐变绘制 js 条形图
- typescript - 具有多个参数或对象映射的打字稿函数
- python-3.x - 'pip' 在虚拟环境之外不起作用