我想对数据框进行排序,而“名称”列中的团队名称与“评分”列中的评分保持一致。例如,ne的评分最高为13.62。我需要将“ne”和“13.62”分类到第一个位置。以下是我的一些代码:
x <-t(nfl_data)
y <- solve(x)
myfun = function(i) round( (1/13)*(sum(x[,i])) + mean(y[,i]), digits=2 )
ratings = numeric(32)
for (i in 1:32){
ratings[i] = myfun(i)
}
teams <- c('ari','atl','bal','buf','car','chi','cin','cle','dal',
'den','det','grn','hou','ind','jac','kc','mia','min','ne',
'no','nyj','nyg','oak','phi','pit','sd','sea','sf','stl',
'tb','tn','was')
df <- data.frame(teams,ratings)
df[with(df, order(teams, -ratings)), ]
以下是df的示例输出:
teams ratings
1 ari -3.73
2 atl 9.46
3 bal 2.31
4 buf -5.46
5 car -0.69
6 chi 7.57
7 cin 6.69
8 cle -4.23
如果我尝试运行有序数据帧代码,我会得到相同的结果。我做错了什么?
答案 0 :(得分:0)
对评级栏进行排序
df[with(df, order(-ratings)), ]