【问题标题】:How to permute a dataframe columnwise with paird colume in R?如何用 R 中的配对列明智地置换数据框列?
【发布时间】:2020-10-19 03:59:49
【问题描述】:

所以我有一个包含 4 列和 5 行的数据框(dataframe1),例如:

    C1  C2  C3  C4
R1  a   1   15   8
R2  b   0   30   5
R3  c   1   10   2
R4  d   0   27   1
R5  e   1   39   4

如何置换 C2 和 C3 并将它们配对?

喜欢:

    C1  C2  C3  C4
R1  a   0   27   8
R2  b   0   30   5
R3  c   1   10   2
R4  d   1   39   1
R5  e   1   15   4

置换 C2 和 C3 列,但让 C2 和 C3 保持配对。

这可能吗?

我尝试sample(),但在配对列时找不到任何要置换的代码。

PS:我不希望 C1 和 C4 在排列时有任何变化。

【问题讨论】:

    标签: r permutation


    【解决方案1】:

    我们在行序列上获得sample,并将其用作行索引来修改'C2'、'C3'的值

    i1 <- sample(seq_len(nrow(df1)))
    df1[c("C2", "C3")] <- df1[i1, c("C2", "C3")]
    

    -输出

    df1
    #   C1 C2 C3 C4
    #R1  a  0 27  8
    #R2  b  1 15  5
    #R3  c  1 39  2
    #R4  d  0 30  1
    #R5  e  1 10  4
    

    数据

    df1 <- structure(list(C1 = c("a", "b", "c", "d", "e"), C2 = c(1L, 0L, 
    1L, 0L, 1L), C3 = c(15L, 30L, 10L, 27L, 39L), C4 = c(8L, 5L, 
    2L, 1L, 4L)), class = "data.frame", row.names = c("R1", "R2", 
    "R3", "R4", "R5"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多