【问题标题】:data column sorting in RR中的数据列排序
【发布时间】:2012-01-10 17:57:51
【问题描述】:

这是我的数据集。

set.seed (1234) 
mydf <- data.frame (Id = c("dis", 1:5),

V1.a = c(0,sample(c(0, 1,2), 5, replace = T)),V1.b = c(0,sample(c(0, 1,2), 5, replace = T)),
V2.a = c(1.5,sample(c(0, 1,2), 5, replace = T)),V2.b = c(1.5,sample(c(0, 1,2), 5, replace = T)),
V3.a = c(2.0,sample(c(0, 1,2), 5, replace = T)),V3.b = c(2.0,sample(c(0, 1,2), 5, replace = T)),
V4.a = c(5.0,sample(c(0, 1,2), 5, replace = T)),V4.b = c(5.0,sample(c(0, 1,2), 5, replace = T)),
V5.a = c(6.0,sample(c(0, 1,2), 5, replace = T)),V5.b = c(6.0,sample(c(0, 1,2), 5, replace = T)),
V16a = c(11.0,sample(c(0, 1,2), 5, replace = T)),V6.b = c(11.0,sample(c(0, 1,2), 5, replace = T)),
V7.a = c(12.0,sample(c(0, 1,2), 5, replace = T)),V7.b = c(12.0,sample(c(0, 1,2), 5, replace = T)),
V8.a = c(3.0,sample(c(0, 1,2), 5, replace = T)),V8.b = c(3.0,sample(c(0, 1,2), 5, replace = T)))

 d = mydf
> d
  Id V1.a V1.b V2.a V2.b V3.a V3.b V4.a V4.b V5.a V5.b V16a V6.b V7.a V7.b V8.a
1  0    0    0  1.5  1.5    2    2    5    5    6    6   11   11   12   12    3
2  1    1    2  1.0  0.0    1    2    1    2    0    1    1    2    0    1    1
3  2    1    1  2.0  2.0    1    2    0    1    0    1    1    1    0    2    0
4  3    0    0  1.0  2.0    2    0    2    2    2    2    2    1    1    2    0
5  4    0    2  0.0  2.0    2    2    1    1    2    2    2    1    2    1    0
6  5    2    1  2.0  0.0    2    0    1    1    0    1    0    0    0    2    1
  V8.b
1    3
2    2
3    0
4    2
5    0
6    2

我想在每个变量的第一行元素中按值排序。

>  d <- d[,order(d[1,-1])]
> d
  Id V1.a V1.b V2.a V2.b V3.a V7.b V8.a V3.b V4.a V4.b V5.a V5.b V16a V6.b V7.a
1  0    0    0  1.5  1.5    2   12    3    2    5    5    6    6   11   11   12
2  1    1    2  1.0  0.0    1    1    1    2    1    2    0    1    1    2    0
3  2    1    1  2.0  2.0    1    2    0    2    0    1    0    1    1    1    0
4  3    0    0  1.0  2.0    2    2    0    0    2    2    2    2    2    1    1
5  4    0    2  0.0  2.0    2    1    0    2    1    1    2    2    2    1    2
6  5    2    1  2.0  0.0    2    2    1    0    1    1    0    1    0    0    0

订购不适用于 V7.a!缺少 V8.a。以其他方式做这件事的问题或好方法是什么?

【问题讨论】:

    标签: r variables sorting dataframe


    【解决方案1】:

    order(d[1,-1]) 返回的整数向量指的是 data.frame d[,-1](即 d 删除了第一列)。如果您随后使用该向量来索引 d 中的列,则会对其列进行无意义的排序(并且您会完全丢失最后一列)。

    这应该可以解决问题:

    d[,c(1, 1+ order(d[1,-1]))]
    

    【讨论】:

      猜你喜欢
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 2020-08-04
      • 2018-10-16
      • 1970-01-01
      • 2022-12-18
      相关资源
      最近更新 更多