Вы можете сделать это, проиндексировав столбцы с нечетными и четными номерами
# dummy data (please provide code to make a reproducible example in the future)
df1 <- data.frame(v1 = c("A", "a", "B", "b", "C", "c"))
# solution
df2 <- data.frame(
"col1" = df1[seq(1,length(df1[,1]),2), "v1"],
"col2" = df1[seq(2,length(df1[,1]),2), "v1"])
Здесь используется последовательность, чтобы задать вектор целых чисел, разделенных 2, начиная с 1 или 2 до длины оригинала кадр данных с использованием функции seq()
, например,
seq(2,length(df1[,1]),2)
## [1] 2 4 6
Затем он передается в строки в квадратных скобках df[rows, columns]
.