R 字符串操作-用变量替换文本并解析

R 字符串操作-用变量替换文本并解析,r,regex,string,csv,R,Regex,String,Csv,任务: 我的任务是在csv输入数据中应用一些给定的计算规则。 在第一步中,我需要将给定的规则(下面的示例)翻译成R语言。在第二步中,我将一些csv文件(表格)加载到R中,并将规则应用于数据,以检查规则中给出的条件是否可以确认 C 01.00、F 08.01.b等是不同的表。 每个工作表都有许多行和列 创意: 我的想法是为每张图纸定义一个矩阵。例如,F0801b是一个表“f08.01.b”中的矩阵,其中包含99行99列和许多值。变量F0801bR450将是F0801b矩阵的第45行 规则可以如下所

任务:

我的任务是在csv输入数据中应用一些给定的计算规则。 在第一步中,我需要将给定的规则(下面的示例)翻译成R语言。在第二步中,我将一些csv文件(表格)加载到R中,并将规则应用于数据,以检查规则中给出的条件是否可以确认

C 01.00、F 08.01.b等是不同的表。 每个工作表都有许多行和列

创意:

我的想法是为每张图纸定义一个矩阵。例如,
F0801b
是一个表“f08.01.b”中的矩阵,其中包含99行99列和许多值。变量
F0801bR450
将是F0801b矩阵的第45行

规则可以如下所示:

{r390,c010}=={r400,c010}+{r410,c010}+{r420,c010}

每个计算规则都连接到一个特定的“表”。如果规则如上所述,同一工作表第39行和第1列的单元格必须等于右侧的项。 任务是从计算规则中给定的单元格中获取值,因此用矩阵中的值替换{}中的字符串,并在最后解析方程以检查条件是否为真


{F 19.00.a,c100}您真的需要自定义公式吗?是否有任何理由不直接编写R表达式,例如:

M <- matrix(1:16, 4) # test matrix

M[1, 2] == M[4, 1] + M[3, 3] + M[2, 1]
## [1] FALSE

M到目前为止你都试了些什么?最重要的是,向我们展示可复制的数据。
b <- gsubfn(pat2, getCell, string); b
eval(parse(text=b))
M <- matrix(1:16, 4) # test matrix

M[1, 2] == M[4, 1] + M[3, 3] + M[2, 1]
## [1] FALSE
 # test input
 matrix_name <- "M"
 string <- "{r001, c002} == {r004, c001} + {r003, c003} + {r002, c002}"

 txt <- gsub("\\{r(\\d+), c(\\d+)\\}", paste0(matrix_name, "[\\1, \\2]"), string)
 eval(parse(text = txt))
 ## [1] FALSE
 string2 <- "{M r001, c002} == {M r004, c001} + {M r003, c003} + {M r002, c002}" # input

 txt2 <- gsub("\\{(\\w+) r(\\d+), c(\\d+)\\}", "\\1[\\2, \\3]", string2)
 eval(parse(text = txt2))
 ## [1] FALSE