作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我假设我是 R 新手,实际上我正在尝试了解基础知识。目前我正在处理一个大型数据框(称为“ppl”),我必须对其进行编辑才能过滤某些行。每行都包含在一个组中,其特征是强度(进入)值和样本值。
mz rt into sample tracker sn grp
100.0153 126 2.762664 3 11908 7.522655 0
100.0171 127 2.972048 2 5308 7.718521 0
100.0788 272 30.217969 2 5309 19.024807 1
100.0796 272 17.277916 3 11910 7.297716 1
101.0042 128 37.557324 3 11916 27.991320 2
101.0043 128 39.676014 2 5316 28.234918 2
那么,第一个问题是:“如何从每组中选择强度最高的样本?”我尝试了 for 循环:
for (i in ppl$grp) {
temp<-ppl[ppl$grp == i,]
sel<-rbind(sel,temp[max(temp$into),])
}
事实上,它适用于 ppl$grp == 0,但接下来的周期返回 NA 行。然后过滤后的数据帧(称为“sel”)还应该存储已删除行的样本值。应该是这样的:
mz rt into sample tracker sn grp
100.0171 127 2.972048 c(2,3) 5308 7.718521 0
100.0788 272 30.217969 c(2,3) 5309 19.024807 1
101.0043 128 39.676014 c(2,3) 5316 28.234918 2
为了得到这个,我会使用这种方法:
lev<-factor(ppl$grp)
samp<-ppl$sample
samp2<-split(samp,lev)
sel$sample<-samp2
有什么提示吗?因为我还没有解决之前的问题,所以无法测试它。
非常感谢。
最佳答案
不确定我是否明白你的问题。但也许这会让你开始。
library(dplyr)
ppl %>% group_by(grp) %>% filter(into == max(into))
关于R For 循环无法应用 max 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39579640/
我是一名优秀的程序员,十分优秀!