r - 我如何在 R 中编写循环函数来为每一行重复这些代码
问题描述
#gg 是我的数据框,因为它包含 1000 个不同的 seqname
seqname start end
scaffold02439 843 1180
scaffold02439 928 1180
scaffold02439 3560 3672
scaffold02439 3560 3672
scaffold02439 5525 5666
scaffold02439 5525 5666
#我要取每个seqname的开始和结束值
c <- unique(gg$seqname)
l1 <- gg %>% filter(seqname %in% c[1] )
l1a <- l1[1,2]
l1b <- l1[nrow(l1),3]
l1 <- cbind(c[1],l1a,l1b)
l2 <- gg %>% filter(seqname %in% c[2])
l2a <- l2[1,2]
l2b <- l2[nrow(l2),3]
l2 <- cbind(c[2],l2a,l2b)
如何以循环形式编写它以提取每个值,然后获取该数据的第一行的开始(第二列)和最后一行的结束(第三列)
解决方案
你可以做这样的事情
library(dplyr)
gg %>% group_by(seqname) %>% #group by seqname
summarise(start = first(start), end = last(end))#extract first and last
这将返回第一个和最后一个条目,它们不一定是 and 的最小值和start
最大值end
。如果你想要这个,只需使用summarise(start = min(start), end = max(end))
.
推荐阅读
- javascript - 将 PHP 变量回显到 JavaScript 变量中会在 HTML 中打印 PHP 变量
- javascript - React-Router 在按下后退按钮时跳过搜索查询
- asp.net-web-api - 具有 [Authorize] 属性的 JWT 身份验证
- python - 对为 skip gram 模型生成批处理数据感到困惑
- reactjs - React 登录页面按钮
- algorithm - 将不同元素插入二叉堆
- mysql - Docker rails无法连接mysql
- javascript - 如何等到所有数据都下载到 Firebase(Firestore)存储中?
- actions-on-google - 如何处理需要超过 5 秒的响应
- java - SOAP 服务客户端在 SOAPUI 中工作,但在 Netbeans 中不工作