作为checkresiduals()
包中forecast
函数的结果,我得到了以下结果:
#Result of checkresiduals() function
test <- "Q* = 4.5113, df = 4.6, p-value = 0.4237"
现在,我的意图是将带有
grep()
或其他函数的这一行文本拆分为一个data.frame(具有三列Q*
,df
和p-value
),如以下示例所示: Q* df p-value
4.5113 4.6 0.4237
谁能帮我这个代码?
最佳答案
这是两种替代方法:
read.dcf()
parse()
/ eval()
read.dcf()
将字符串
read.dcf()
转换为DCF(Debian控制文件)格式后,请使用test
函数。(顺便说一句,每个R包的
DESCRIPTION
文件都是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)
所有列均为字符类型。
语言计算
library(magrittr) # piping used for readability
test %>%
stringr::str_replace_all("(\\S+) =", "`\\1` =") %>%
paste0("data.frame(", ., ", check.names = FALSE)") %>%
parse(text = .) %>%
eval()
所有列的类型都是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
。关于r - Grep文字并放入数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55757783/