在 R 中对数据框中的数据进行排序
Sorting data in a dataframe in R
经过数据处理和使用 spread,我得到了以下 table:
Complaint types and Boroughs
我想确定每个行政区的前 4 个问题。排序没有帮助,因为有 4 个自治市镇。关于如何获得的任何想法?
您可以使用 order(column, decreasing=TRUE)[1:4]
对投诉类型列进行子集化。它将 return 向量中最大的四个值。然后很容易将其转换为所需的任何形式;这里的数据框很有意义:
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))
经过数据处理和使用 spread,我得到了以下 table: Complaint types and Boroughs
我想确定每个行政区的前 4 个问题。排序没有帮助,因为有 4 个自治市镇。关于如何获得的任何想法?
您可以使用 order(column, decreasing=TRUE)[1:4]
对投诉类型列进行子集化。它将 return 向量中最大的四个值。然后很容易将其转换为所需的任何形式;这里的数据框很有意义:
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))