-4
我有一個尺寸爲32 x 11的R數據框。對於每一行,我想確定最高值,次高和第三高值以及添加這些值作爲初始數據幀的額外列(32 x 14)。提前謝謝了!R:對行進行排序,查詢它們並將結果添加爲列表
library(car)
data(mtcars)
mtcars
我有一個尺寸爲32 x 11的R數據框。對於每一行,我想確定最高值,次高和第三高值以及添加這些值作爲初始數據幀的額外列(32 x 14)。提前謝謝了!R:對行進行排序,查詢它們並將結果添加爲列表
library(car)
data(mtcars)
mtcars
首先,創建一個函數來獲得矢量的第n個最高值。然後,創建一個數據框的副本,因爲隨着添加更多列,第二個最高值可能會更改。然後使用apply
和1應用您的功能以逐行操作。我不確定如果數據中有NAs會發生什麼情況。我沒有測試它...
事情是這樣的......
nth_highest <- function(x, n)sort(x, decreasing=TRUE)[n]
tmp <- mtcars
mtcars$highest <- apply(tmp, 1, function(x)nth_highest(x,1))
mtcars$second_highest <- apply(tmp, 1, function(x)nth_highest(x,2))
mtcars$third_highest <- apply(tmp, 1, function(x)nth_highest(x,3))
rm(tmp)
謝謝cory!下面的作品也是't(apply(mtcars,1,sort))' – Jon
你的代碼並不顯示任何研究都...嘗試了一下,然後如果你可以尋求幫助」 t自己解決 – HubertL