gpt4 book ai didi

R For 循环无法应用 max 函数

转载 作者:行者123 更新时间:2023-12-02 08:13:26 30 4
gpt4 key购买 nike

我假设我是 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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com