0
我想對「數據框」進行排序,而「名稱」列中的組名保持「收視率」列中的評分。例如,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
我得到相同的結果,如果我嘗試運行有序的數據幀代碼。我究竟做錯了什麼?
只需通過'ratings'(即'DF [與(DF,順序(評級)),]')排序。你正在做的方式目前按字母順序排列爲'teams' – Jota
使用'plyr'包中的'arrange'。 – Ramnath