簡體   English   中英

查找與R中每一行的最小值對應的列名

[英]find column names corresponding to least value of each row in R

我必須為數據框的每一行提取至少與10個值相對應的列名,並將其打印在新的數據框中。有人可以幫我嗎?

我的數據框看起來像這樣:(15 x 15矩陣)

    > head(yt)
        V2   V3   V4   V5   V6   V7   V8   V9  V10  V11  V12  V13  V14  V15 
    1    0  966 1513 2964 1149  927 1611 1510  390  466 1820 1718  504 1179  
    2  966    0 2410 1520 1817  729  686  290 1823  168 2027  172 1610 1500 
    3 1513 2410    0  604  481 2742 1833  826  214 1618 1712  567  544 1313 
    4 2964 1520  604    0  595 1289 1446  466 1139  430  428  201  452 1574 
    5 1149 1817  481  595    0  494  550 2641  765  934 1813 1516  378 1363 
    6  927  729 2742 1289  494    0 1279 1197 2956  299  888  491 1408 1432

對於15行中的每一行,我想知道至少10列的列名

我知道which.min為每一行提供最少的列名,但是您能讓我知道其他計算最少10個值的方法嗎?

order函數將給出向量的order數。 因此,其結果的第一個值對應於向量中最小值的索引。 第二個到第二個最小的索引等。在函數中使用它並使用apply函數,我們可以將其應用於所有行。 apply函數的結果是按列排列的,您可能不希望這樣做,因此轉置將接管結果。

first_10 <- function(x) order(x)[1:10]
t(apply(dat, 1, first_10))

暫無
暫無

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

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