首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R For循环应用max函数失败

R For循环应用max函数失败
EN

Stack Overflow用户
提问于 2016-09-19 18:16:38
回答 4查看 131关注 0票数 5

我假设我对R是新的,实际上我是想得到基本面。目前,我正在处理一个大型的dataframe (称为"ppl"),为了过滤一些行,我必须对它进行编辑。每一行都包含在一个组中,它的特征是一个强度(入)值和一个样本值。

代码语言:javascript
复制
       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循环:

代码语言:javascript
复制
for (i in ppl$grp) {
temp<-ppl[ppl$grp == i,]
sel<-rbind(sel,temp[max(temp$into),])
}

事实上,它适用于ppl$grp == 0,但是下一个循环返回NAs行。然后,过滤后的dataframe(称为"sel")也应该存储已删除行的示例值。其内容应如下:

代码语言:javascript
复制
      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

为了得到这一点,我将使用以下方法:

代码语言:javascript
复制
lev<-factor(ppl$grp)
samp<-ppl$sample
samp2<-split(samp,lev)
sel$sample<-samp2

有什么暗示吗?因为我不能测试它,因为我还没有解决之前的问题。

非常感谢。

EN

Stack Overflow用户

发布于 2016-09-20 05:46:16

我不知道为什么这个代码会起作用

代码语言:javascript
复制
for (i in ppl$grp) {
  temp<-ppl[ppl$grp == i,]
  sel<-rbind(sel,temp[max(temp$into),])
}

max(temp$into)应该返回最大值--在大多数情况下它似乎不是整数。

此外,在每个for循环实例中构建一个带有rbind的data.frame也不是很好的实践(在任何语言中)。它需要退出一些类型检查和数组增长,这可能会变得非常昂贵。

此外,当该组有任何NAs时,max将返回NA。

还有一个问题是,你想对领带做些什么?你只想要一个结果还是全部?阿克伦给出的代码会给你所有的。

此代码将编写一个具有组max的新列。

代码语言:javascript
复制
 ppl$grpmax <- ave(ppl$into, ppl$grp, FUN=function(x) { max(x, na.rm=TRUE ) } )

然后,可以选择组中与

代码语言:javascript
复制
pplmax <- subset(ppl, into == grpmax)

如果每个组只需要一个,那么可以删除重复项。

代码语言:javascript
复制
pplmax[!duplicated(pplmax$grp),]
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39579640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档