【问题标题】:Order the data by nth column, get rowname of the nth row, do this for each column按第 n 列排序数据,获取第 n 行的行名,对每一列执行此操作
【发布时间】:2016-11-04 00:02:22
【问题描述】:

这个问题是对这篇文章的轻微修改: Order the data by nth column, get rowname of first row, do this for each column

但解决方案必须完全不同

数据框:

head(pcaFM_clim_var_cos2[,1:5])

                         Dim.1      Dim.2     Dim.3        Dim.4      Dim.5
    dtr_mean_value_1 0.2583860 0.04524243 0.3004670 4.714854e-02 0.05262342
    dtr_mean_value_2 0.2470183 0.04818929 0.3380621 4.220726e-02 0.05577386
    dtr_mean_value_3 0.2459333 0.07231365 0.3690537 9.016624e-03 0.08165524
    dtr_mean_value_4 0.2740264 0.09818961 0.3053862 2.670571e-03 0.08860495
    dtr_mean_value_5 0.1910882 0.18521379 0.3373460 7.113687e-06 0.07396737
    dtr_mean_value_6 0.2109406 0.18532406 0.3185838 6.542807e-03 0.10550687

我的目的是:

  • 按 Dim.1 对数据进行排序
  • 获取第 n 行(比如前 5 行)的行名并将其作为列附加到空数据框
  • 对 Dim.2:Dim5 重复此操作,将第一个行名附加到同一向量。

【问题讨论】:

    标签: r


    【解决方案1】:

    也许这可行..

    set.seed(1)
    df <- data.frame(Dim.1 = rnorm(5),Dim.2=rnorm(5),Dim.3=rnorm(5),Dim.4=rnorm(5),Dim.5 = rnorm(5),row.names = c("dtr_mean_value_1","dtr_mean_value_2","dtr_mean_value_3","dtr_mean_value_4","dtr_mean_value_5"))
    
     #                        Dim.1       Dim.2      Dim.3      Dim.4      Dim.5
     # dtr_mean_value_1 -0.05612874  1.35867955 -0.4149946 -0.1645236 -0.7074952
     # dtr_mean_value_2 -0.15579551 -0.10278773 -0.3942900 -0.2533617  0.3645820
     # dtr_mean_value_3 -1.47075238  0.38767161 -0.0593134  0.6969634  0.7685329
     # dtr_mean_value_4 -0.47815006 -0.05380504  1.1000254  0.5566632 -0.1123462
     # dtr_mean_value_5  0.41794156 -1.37705956  0.7631757 -0.6887557  0.8811077
    
    apply(df,2,function(x){
        rownames(df)[head(order(x),5)] # because you asked for the first 5 rows
     })
     # Results in
    
    
    
      #      Dim.1              Dim.2              Dim.3              Dim.4              Dim.5             
      # [1,] "dtr_mean_value_3" "dtr_mean_value_5" "dtr_mean_value_1" "dtr_mean_value_5" "dtr_mean_value_1"
      # [2,] "dtr_mean_value_4" "dtr_mean_value_2" "dtr_mean_value_2" "dtr_mean_value_2" "dtr_mean_value_4"
      # [3,] "dtr_mean_value_2" "dtr_mean_value_4" "dtr_mean_value_3" "dtr_mean_value_1" "dtr_mean_value_2"
      # [4,] "dtr_mean_value_1" "dtr_mean_value_3" "dtr_mean_value_5" "dtr_mean_value_4" "dtr_mean_value_3"
      # [5,] "dtr_mean_value_5" "dtr_mean_value_1" "dtr_mean_value_4" "dtr_mean_value_3" "dtr_mean_value_5"
    

    【讨论】:

      猜你喜欢
      • 2017-03-07
      • 2016-11-12
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多