【问题标题】:Sorting data in a dataframe in R在R中对数据框中的数据进行排序
【发布时间】:2015-12-02 20:50:14
【问题描述】:

在数据整理和使用spread之后,我得到了下表: Complaint types and Boroughs

我想确定每个自治市镇的前 4 个问题。排序没有帮助,因为有 4 个自治市镇。关于如何获得的任何想法?

【问题讨论】:

  • 那么,我取每个自治市镇的一个子集并对其使用顺序?
  • @Alex 尝试排序,testsort

标签: r data-munging


【解决方案1】:

您可以使用order(column, decreasing=TRUE)[1:4] 子集投诉类型列。它将返回向量中最大的四个值。然后很容易将其转换为所需的任何形式;这里的数据框是有意义的:

lst <- lapply(df[-1], function(col) df[,'Complaint.Type'][order(col, decreasing=T)[1:4]])
as.data.frame(lst)
#     BRONX BROOKLYN MANHATTAN   QUEENS
#1 Facility Facility     Adopt Facility
#2    Abuse    Abuse  Advocate    Adopt
#3     Park      Air      Park     Park
#4 Advocate    Adopt     Abuse Advocate

数据

df <- data.frame(Complaint.Type=c('Adopt', 'Advocate', 'Air', 'Abuse', 'Facility','Park'),
                 BRONX=c(0,5, 1, 33, 81, 7),
                 BROOKLYN=c(2,0,100,148,177, 1),
                 MANHATTAN=c(129,49,2,9,1,15),
                 QUEENS=c(50,3,0,3,2469,6))

【讨论】:

  • 工作就像一个魅力!谢谢你!你能帮我理解 df[-1] 和 function(col) 的作用吗?
  • df[-1] 删除第一列。我们不想将投诉类型包括在计数中
  • function(col) df[,'Complaint......[1:4]] 被称为匿名函数。我编了名字col,我可以使用任何字符串来定义变量。 col 只是作为一个名称才有意义,因为我们正在谈论列。匿名函数的完整解释可以在safaribooksonline.com/library/view/the-art-of/9781593273842/…找到
猜你喜欢
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-19
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多