对data.frames列表进行排序

时间:2013-04-24 14:06:10

标签: r

大家好我有一个大文件,看起来像这样:

  Col1_names     Col1_values      Col2_names      Col2_values
      a               0.2              b               0.12
      c               0.12             m               0.2
      d               0.5              n               0.21
      g               0.3              w               0.1
      p               0.1              y               0.3
      h               0.32             z               0.01

我需要对下面的data.frame进行排序,使它看起来像这样:

  Col1_names      Col1_values     Col2_names        Col2_values
       p              0.1              z                 0.01
       c              0.12             w                 0.1                
       a              0.2              b                 0.12                     
       g              0.3              m                 0.2             
       h              0.32             n                 0.21              
       d              0.5              y                 0.3

换句话说,我需要按升序对每列包含值(“Col1_values”)进行排序。有人可以帮我吗?我在R中很新颖,所以对我来说似乎太难了。 非常感谢!

抱歉,我忘了告诉你,在实际案例中,data.frame包含大约200个列表。

1 个答案:

答案 0 :(得分:1)

这些方面的东西应该这样做

txt <- "Col1_names     Col1_values      Col2_names      Col2_values
          a               0.20             b               0.12
          c               0.12             m               0.2
          d               0.5              n               0.21
          g               0.30             w               0.10
          p               0.1              y               0.30
          h               0.32             z               0.01"

dat <- read.table(text = txt, header = TRUE)
dat[order(dat$Col1_values), ]

##   Col1_names Col1_values Col2_names Col2_values
## 5          p        0.10          y        0.30
## 2          c        0.12          m        0.20
## 1          a        0.20          b        0.12
## 4          g        0.30          w        0.10
## 6          h        0.32          z        0.01
## 3          d        0.50          n        0.21