Вот два альтернативных подхода:
- Преобразование строки в формат DCF и использование
read.dcf()
- «Вычисления на языке»: преобразовать строку в правильное выражение R и использовать
parse()
/ eval()
read.dcf()
Используйте функцию read.dcf()
после преобразования строки test
в формат DCF (файл управления Debian).
(Кстати, файл DESCRIPTION
каждого пакета R представлен в формате DCF.)
library(magrittr) # piping used for readability
test %>%
stringr::str_replace_all("=", ":") %>% # replace "=" by ":"
stringr::str_replace_all(",\\s*", "\n") %>% # replace ", " by line break
textConnection() %>%
read.dcf(all = TRUE)
Q* df p-value
1 4.5113 4.6 0.4237
Все столбцы имеют тип символов.
Вычисления на языке
library(magrittr) # piping used for readability
test %>%
stringr::str_replace_all("(\\S+) =", "`\\1` =") %>%
paste0("data.frame(", ., ", check.names = FALSE)") %>%
parse(text = .) %>%
eval()
Q* df p-value
1 4.5113 4.6 0.4237
Все столбцы имеют тип double.
test %>%
stringr::str_replace_all("(\\S+) =", "`\\1` =") %>%
paste0("data.frame(", ., ", check.names = FALSE)")
возврат
"data.frame(`Q*` = 4.5113, `df` = 4.6, `p-value` = 0.4237, check.names = FALSE)"
, который затем анализируется в выражении и обрабатывается.
Обратите внимание, что все имена переменных заключаются в кавычки для обработки синтаксически неверных имен переменных, таких как Q*
и p-value
.