我試圖使用字符串輸入函數,然後需要將其轉換爲R中的可用形式。例如:R:將函數輸入中的字符串轉換爲函數中的部分表達式
我有以下功能:
MyFunction <- function(MyDataFrame){
Fit <- aov(VariableA ~ A * B * C, MyDataFrame)
model = lme(VariableA ~ A * B * C, random=~1| Sample, method="REML", MyDataFrame)
return(anova(model))
}
這工作正常。但是,我有時希望使用不同的公式和單個函數,因此我的「表達式」可以是"A * B * C"
或"A * C"
。我試過使用:
MyFunction <- function(MyDataFrame, Expression = "A * B * C"){
Fit <- aov(VariableA ~ Expression, MyDataFrame)
model = lme(VariableA ~ Expression, random=~1| Sample, method="REML", MyDataFrame)
return(anova(model))
}
這是行不通的。有什麼建議麼?
嘗試'as.formula(paste0(「variableA的〜」,表達式))' – Lamia
使用一個公式而不是一個字符串,即'Expression =〜A * B * C',然後在函數內部使用'lme(update(VariableA〜。,expression))'。對'update'的調用會將你的公式'VariableA〜.'更新爲'VariableA〜A * B * C' – yeedle