簡體   English   中英

R:為前 n 列值制作帶有行名的表格

[英]R: Make table with rownames for top n column values

我有一個帶有數字計數值的數據框。 我想創建一個新表,其中包含每列前 n 個值的行名。

df <- data.frame(a = c(1,4,5,2), b = c(7,1,4,6), c = c(5,6,7,1)
rownames(df) <- c(w,x,y,z)

使用 n = 2 我想要的輸出是

一種 C
X z z

我能夠使用以下df2 <- apply(df, 2, function(x) sort(unique(x),decreasing =TRUE)[1:5])提取每列的前 5 個值,但我無法弄清楚如何獲取與每個值對應的行名。

一個可能的解決方案:

df <- data.frame(a = c(1,4,5,2), b = c(7,1,4,6), c = c(5,6,7,1))
rownames(df) <- c("w","x","y","z")

f <- function(x) names(sort(x,decreasing = T))[1:2]

apply(df,2,f)

#>      a   b   c  
#> [1,] "y" "w" "y"
#> [2,] "x" "z" "x"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM