R拆分包括括号的公式
R split a formula including brackets
我目前正在编写一个使用 MLE 或 Gibbs 采样器估计随机前沿模型的程序包。
最终用户应该能够像这样输入他的公式:
sfm(公式 = y ~ x1 + ... + xk + (z1 + ... + zr), data = ...) (K-x 变量, r-z变量)
我的问题:
我不知道如何正确地将公式分成两部分。
拆分后的结果应该是:
1: "y ~ x1 + .. + xk"
2: "z1 + .. + zn"
在此先感谢您。
最佳
您可以尝试类似的方法:
library(stringr)
formula <- y ~ x1 + ... + xk + (z1 + ... + zr)
formula <- as.character(formula)
str_extract(formula, "(?<=\().*?(?=\))")[3]
[1] "z1 + ... + zr"
a <- str_extract(formula, "^.*?(?=\s\+\s\()")[3]
paste(formula[2],formula[1],a)
[1] "y ~ x1 + ... + xk"
我目前正在编写一个使用 MLE 或 Gibbs 采样器估计随机前沿模型的程序包。 最终用户应该能够像这样输入他的公式:
sfm(公式 = y ~ x1 + ... + xk + (z1 + ... + zr), data = ...) (K-x 变量, r-z变量)
我的问题:
我不知道如何正确地将公式分成两部分。
拆分后的结果应该是:
1: "y ~ x1 + .. + xk"
2: "z1 + .. + zn"
在此先感谢您。
最佳
您可以尝试类似的方法:
library(stringr)
formula <- y ~ x1 + ... + xk + (z1 + ... + zr)
formula <- as.character(formula)
str_extract(formula, "(?<=\().*?(?=\))")[3]
[1] "z1 + ... + zr"
a <- str_extract(formula, "^.*?(?=\s\+\s\()")[3]
paste(formula[2],formula[1],a)
[1] "y ~ x1 + ... + xk"