У меня есть такой фрейм данных:
structure(list(header = 1:10, ST.adk.fumC.gyrB.icd.mdh.purA.recA = c(" 10 10 11 4 8 8 8 2",
" 48 6 11 4 8 8 8 2", " 58 6 4 4 16 24 8 14", " 88* 6* 4 12 1 20 12 7",
" 117 20 45 41 43 5 32 2", " 7036 526 7 1 1 8 71 6", " 101 43 41 15 18 11 7 6",
" 3595 112 11 5 12 8 88 86", " 117 20 45 41 43 5 32 2", " 744 10 11 135 8 8 8 2"
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
Я хочу разделить второй столбец на отдельные столбцы, разделенные знаком "."в названии столбца.Однако не всегда известно, как называется имя столбца, поэтому я не могу использовать имя столбца в dplyr «отдельной» функции.
Я пробовал следующее:
library(dplyr)
library(stringr)
library(tidyr)
# get new column names
ids <- unlist(strsplit(names(df)[-1],
split = ".",
fixed = TRUE))
# get name of column to split
split_column <- names(df)[-1]
df %>%
separate(split_column, into = ids, extra = "merge")
Это работает в файле скрипта, который я использую, но когда я пишу скрипт, я получаю следующую ошибку:
Error: `var` must evaluate to a single number or a column name, not a character vector
Почему это работает, когда я запускаю его как обычно в RStudio, но когда яИсходный скрипт выдает эту ошибку?Кроме того, является ли это оптимальным способом фактического разбиения столбца с неизвестным именем на новые столбцы с неизвестными именами?
Я создаю сценарий со следующим кодом в другом файле сценария:
system(paste("Rscript script.R", opt$m, opt$o))
Где opt $ m и opt $ o являются путями к каталогам.Это прекрасно работает с аналогичным сценарием, который у меня есть, но с приведенным выше сценарием выдает ошибку.
Я надеялся на какую-то функцию, например Отдельный_кат, но пока еще не существует ..