我有一个看起来与此类似的数据框:
> df <- data.frame(A1=1:3, B1=1:3, A2=1:3, B2=1:3, A3=1:3, B3=1:3)
> df
A1 B1 A2 B2 A3 B3
1 1 1 1 1 1 1
2 2 2 2 2 2 2
3 3 3 3 3 3 3
现在,我正在寻找一些在B1,B2和B3之前添加行的代码:
A1 AB1 B1 A2 AB2 B2 A3 AB3 B3
1 1 X 1 1 X 1 1 X 1
2 2 X 2 2 X 2 2 X 2
3 3 X 3 3 X 3 3 X 3
由于上面的数据框仅是一个最小的,可复制的示例(实际数据框要大得多),我正在寻找使用for循环或带有tidyverse的解决方案。我的想法是使用tibble包中的for循环和add_column
的组合:
library(tibble)
for (i in 1:3) {
df <- df %>%
add_column(paste0("AB", i, "") = "X" , .before = paste0("B", i, ""))
}
不幸的是,这个想法行不通。我不确定整个方法是否错误,或者paste0()
等是否存在问题。如果您需要任何其他信息,请告诉我。预先感谢!
for (i in 1:3) {
df <- df %>%
add_column(!!paste0("AB", i, collapse = "") := "X" , .before = paste0("B", i, collapse = ""))
}