首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回最大的几个数作为r中数据帧的列表。

返回最大的几个数作为r中数据帧的列表。
EN

Stack Overflow用户
提问于 2015-10-29 20:32:55
回答 1查看 42关注 0票数 0

我有dataset调用df,如下所示:

代码语言:javascript
运行
复制
Title Time   Gross
a     12/21   2313
b     11/12   1298
c     4/09    10034
d     09/30   3498
e     10/31   2375
y     01/10   8492 

我希望编写一个函数,返回具有最大Title的3个条目的GrossGross

我试过这样做:

代码语言:javascript
运行
复制
names.revenues <- function(num, data){
  i = 1
  for(i in 1:num){
    inds = which.max(data$Gross)
    names[i] = data$Title[inds]
    revenues[i] = data$Gross[inds]
    data = data[-inds, ]
    i = i + 1
  }
  return(list(names = names, revenues = revenues))
}
names.revenues(3, df)

但这不管用,请给我个提示。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-29 21:05:08

您的函数有一些错误,下面是一个可能的工作版本:

代码语言:javascript
运行
复制
names.revenues <- function(num, data){
  # initialize names and revenues with NAs
  names <- rep.int(NA,num)
  revenues <- rep.int(NA,num)

  for(i in 1:num){
    inds = which.max(data$Gross)
    names[i] = data$Title[inds]
    revenues[i] = data$Gross[inds]
    data = data[-inds, ]
  }
  return(list(names = names, revenues = revenues))
}

例子:

代码语言:javascript
运行
复制
df <- data.frame(Title=letters[1:10],
                 Time=format(format='%m/%d',Sys.Date()+1:10),
                 Gross=c(10,200,40,500,70,500,20,300,10,50),
                 stringsAsFactors=FALSE)
# > df
#    Title  Time Gross
# 1      a 10/30    10
# 2      b 10/31   200
# 3      c 11/01    40
# 4      d 11/02   500
# 5      e 11/03    70
# 6      f 11/04   500
# 7      g 11/05    20
# 8      h 11/06   300
# 9      i 11/07    10
# 10     j 11/08    50

res1 <- names.revenues(5, df)
# > res 1
# $names
# [1] "d" "f" "h" "b" "e"
# 
# $revenues
# [1] 500 500 300 200  70

但是,如果使用这种(更有效)的一行程序,则可以获得基本相同的结果:

代码语言:javascript
运行
复制
res2 <- head(df[order(df$Gross,decreasing=TRUE),],5)
# > res2
#   Title  Time Gross
# 4     d 11/02   500
# 6     f 11/04   500
# 8     h 11/06   300
# 2     b 10/31   200
# 5     e 11/03    70
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33424066

复制
相关文章

相似问题

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