Ваши данные, вероятно, являются вектором, а не столбцом, потому что если бы это был столбец, он был бы частью информационного кадра, и вы не могли бы разделить его таким образом, не переставив все остальные строки, которые у вас есть. не показано. Или, может быть, это фрейм данных с одним столбцом. В этом случае изменение кода является тривиальным.
your_vector <- c("column", "val1", "val2", "ppp", "val3", "val4")
key <- "ppp"
i <- which(your_vector == key)
new_df <- data.frame(
your_vector[2:(i-1)],
your_vector[(i+1):length(your_vector)],
stringsAsFactors = F
)
colnames(new_df) <- c(your_vector[1], your_vector[i])
В этом коде предполагается, что в векторе есть одно значение, содержащее данный ключ, и оно должно быть в середине, в противном случае Вы не сможете разделить его и соединить два столбца одинаковой длины. Все остальное вызовет ошибку. Но если он находится посередине, вам не нужно его находить, вы можете просто рассчитать среднюю позицию в векторе и разделить ее. Поэтому я думаю, что вам нужно подумать немного больше об этой проблеме.