复制一列并将其放置在该复制列的旁边

dkc*_*ngo 2 copy r columnsorting

我想复制一列,但我看到的所有示例都将重复的列放在数据框的末尾,但我希望它紧邻复制的列,并将其余数据向下推。

例如:我有 DF1

姓名 钥匙 BCD12A ACA1 地塞米松2
X_1_组1 测试1234 10 10 8
X_2_组1 测试4553 8 7 4
X_2_组2 测试3341 5 5 5
X_2_组1 测试2142 5 6 8
X_1_组2 测试4722 6 7 4

复制此操作,我将在第二列之后复制“DF$Key”的另一列。任何有关这样做的建议将不胜感激!

# DF1
Name <- c("X_1_group1", "X_2_group1", "X_2_group2", "X_2_group1", "X1_group2")
Key <- c("test1234", "test4553", "test3341", "test2142", "test4722")
BCD12A <- c(10, 8, 5, 5, 6)
ACA1 <- c(10, 7, 5, 6, 7)
DEX2 <- c(8, 4, 5, 8, 4)
DF1 <- data.frame(Name, Key, BCD12A, ACA1, DEX2)
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们可以使用mutatewith.after.before来创建列。输入.after/.before可以是不带引号/带引号的列名或数字列索引

library(dplyr)
DF1 <- DF1 %>% 
     mutate(Key2 = Key, .after = Key)
Run Code Online (Sandbox Code Playgroud)

-输出

DF1
        Name      Key     Key2 BCD12A ACA1 DEX2
1 X_1_group1 test1234 test1234     10   10    8
2 X_2_group1 test4553 test4553      8    7    4
3 X_2_group2 test3341 test3341      5    5    5
4 X_2_group1 test2142 test2142      5    6    8
5 X_1_group2 test4722 test4722      6    7    4
Run Code Online (Sandbox Code Playgroud)