我見過很多關於如何向框架添加排列列的帖子,但沒有關於如何創建變量,排名,以及來自排名程序的數據。我算了一下,心裏很不舒服,爲什麼不採取分級功能,從內變換data.frame功能和使用:如何在R中的數據框中對單元格進行排名而不將其添加到數據框
transform(df,
year.rank = ave(count, year,
FUN = function(x) rank(-x, ties.method = "first")))
Buuuut了試圖指望在一年內出現,因此不能適用於以我。我只是想從數據框中的單元格中獲取信息並對它們進行排名。我試圖做Kruskal-Wallis測試,但使用排列來找到p值(其中kruskal.test()
不這樣做)。
我試着只是用rank()
我的數據幀,但我得到這個:
Week2_NoAnti Week2_NaN3 Week2_TCS Week2_EDTA <NA> <NA>
1 4 6 10 11 12
<NA> <NA> <NA> <NA> <NA> <NA>
2 3 7 5 8 9
小於很有幫助。數據幀看起來像這樣:
Week2_NoAnti Week2_NaN3 Week2_TCS Week2_EDTA
1 0.0000 0.7665 0.0756 0.1060
2 0.0938 0.9222 0.0806 0.1289
3 0.1243 1.0109 0.1283 0.1882
如前所述,我想排列單元格。我還需要知道他們來自哪一列,以便我可以平均每列的等級,所以我不能將它們全部放入矢量中並對矢量進行排名。
感謝您的幫助!
編輯:實現了一個更好的方式來做數據框可能是有一列的值,另一列與標籤。目前遇到的困難使得頭()函數顯示六個以上結果...,但這裏是它表明:
Groups agValues
1 Week2_NoAnti 0.0000
2 Week2_NoAnti 0.0938
3 Week2_NoAnti 0.1243
4 Week2_NaN3 0.7665
5 Week2_NaN3 0.9222
6 Week2_NaN3 1.0109
SOLUTION:
對不起,浪費你的時間!上述組織使人們更容易:
ranks = rank(agValues)
mean(ranks[Groups=="Week2_NoAnti"])
你想每一列中的排名?我假設你的小組是NoAnti,NaN3,TCC,EDTA? – infominer
我想排列所有列。我想到了一個更好的方法來做這個,就是我剛剛添加的編輯。對不起,只是有這樣的想法,它使我的數據變成一種類似於我在教科書中看到的問題的格式,希望能夠輕鬆地轉換他們的代碼。 – TurnipEntropy
'head(x,n)'其中n是要顯示的行數,默認值是6 – infominer