Вопрос:
У меня есть особая проблема, когда я хочу поместить столбец данных в отдельный столбец, где имена столбцов хранятся в другом кадре данных.
Пример использования набора данных mtcars:
options(stringsAsFactors = FALSE)
col_names <- c("hp,disp", "disp,hp,mpg")
df_col_names <- as.data.frame(col_names)
vec <- df_col_names[1,] # first row contains "hp" and "disp"
mtcars_new <- mtcars[, c("hp", "disp")] ## assuming that vec gives colnames
Я даже пытался вставить двойные кавычки в каждое из слов, используя следующее:
Попытка решения:
options(stringsAsFactors = FALSE)
col_names <- c("hp,disp", "disp,hp,mpg")
df_col_names <- as.data.frame(col_names)
df_col_names$col_names <- gsub("(\\w+)", '"\\1"', df_col_names$col_names)
vec <- df_col_names[1,]
vec2 <- gsub("(\\w+)", '"\\1"', vec)
mtcars_new <- mtcars[,vec2] ## this should be same as mtcars[, c("hp", "disp")]
Ожидаемое решение
mtcars_new <- mtcars[,vec2]
равно mtcars_new <- mtcars[, c("hp", "disp")]