如何用R中的成对列按列排列数据帧



所以我有一个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(),但在对列进行配对时找不到任何要排列的代码。

附言:我不想在排列时对C1和C4做任何改变。

我们得到行序列上的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"))

最新更新