在R中数据框中的某些位置添加多列
Adding multiple columns at certain positions in dataframe in R
我有一个与此类似的数据框:
> 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()
等是否有任何问题。如果您需要任何进一步的信息,请告诉我。 T
尽管可能有更好的方法来执行此操作,但稍微调整一下您的代码即可:
for (i in 1:3) {
df <- df %>%
add_column(!!paste0("AB", i, collapse = "") := "X" , .before = paste0("B", i, collapse = ""))
}
我有一个与此类似的数据框:
> 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()
等是否有任何问题。如果您需要任何进一步的信息,请告诉我。 T
尽管可能有更好的方法来执行此操作,但稍微调整一下您的代码即可:
for (i in 1:3) {
df <- df %>%
add_column(!!paste0("AB", i, collapse = "") := "X" , .before = paste0("B", i, collapse = ""))
}