我正在嘗試使用 excel 檔案來管理有關協變數的資訊,以包含在許多不同的模型中,這些模型是根據我的資料的不同子組進行估計的。
我希望創建一個函式來輕松回圈這些模型,其中該函式將模型的名稱作為輸入。模型名稱用于從“modelinfo”中選擇協變數,并從“modeldata”中選擇樣本
但是,我不確定如何為這兩個不同的目的使用引數。下面的最小作業示例使用引數“modelnum”來參考 modelinfo 中的列和 modeldata 中的行,但我只能讓它將引數識別為字串以按行限制資料。
如何將引數用作字串和列名?
library(tidyverse)
modelinfo <- tribble(
~covars,~`model 1`,~`model 2`,
"x1" , 1 , 0,
"x2" , 0 , 1
)
modeldata <- tribble(
~x1, ~x2, ~model,
3, 3, "model 1",
4, 1, "model 2",
1, 3, "model 1",
2, 4, "model 3"
)
testfun <- function(modelnum){
covars <- modelinfo %>%
filter({{modelnum}}==1)
data <- modeldata %>%
filter(model==modelnum)
output=c(covars,data)
return(output)
}
testfun(modelnum="model 1")
uj5u.com熱心網友回復:
在這里,最好使用.datawith [[to subset 而不是{{}}傳遞的輸入是字串
testfun <- function(modelnum){
covars <- modelinfo %>%
filter(.data[[modelnum]]==1)
data <- modeldata %>%
filter(model==modelnum)
output=c(covars,data)
return(output)
}
-測驗
testfun(modelnum="model 1")
$covars
[1] "x1"
$`model 1`
[1] 1
$`model 2`
[1] 0
$x1
[1] 3 1
$x2
[1] 3 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/487546.html
下一篇:如何解決遞回函式中的索引錯誤?
