【问题标题】:Repeat analysis for several datasets in R对 R 中的多个数据集重复分析
【发布时间】:2021-12-06 12:30:55
【问题描述】:

如何为每个主题 (xxx) 重复此代码,以便将结果添加到 data.frame(中心)?

fullDataDetrend_xxx <- subset(fullDataDetrend, subjno == xxx, select=c(subjno,depressed,sad,tired,interest,happy,neg_thoughts,concentration_probl,ruminating,activity,datevar,timestamp,dayno,beepno))

  model_xxx <- var1( 
    fullDataDetrend_xxx)

model_xxx_omega <- getmatrix(model_xxx, "omega_zeta")
centrality_model_xxx_omega <- centrality(model_xxx_omega )

centralities[nrow(centralities) + 1,] <- c("xxx",centrality_model_xxx_omega$InExpectedInfluence)

【问题讨论】:

  • 您可以sp &lt;- split(fullDataDetrend, fullDataDetrend$subjno) 然后lapply 为每个拆分列表成员编写一个函数。您可以发布示例数据吗?请使用dput(fullDataDetrend) 的输出编辑问题。或者,如果 dput(head(fullDataDetrend, 20)) 的输出太大。
  • 另外,请明确加载您使用的库。 var1centralitygetmatrix 不是基本 R 函数,可以在哪些包中找到它们?使用 library() 语句开始您的代码示例。

标签: r function


【解决方案1】:

按照建议进行:

fullDataDetrend_split <- split(fulldataDetrend, fulldataDetrend$subjno)

然后,估计网络,提取中心性估计,并写入全球环境中的中心性:

analyze_one <- function(dataframe){
  network_model <- var1( 
    dataframe,
    vars = useVars,
    contemporaneous = "ggm",
    dayvar = "dayno",
    beepvar = "beepno",
    estimator = "FIML",
    verbose = TRUE,
    omega_zeta = "full")
    model_omega <- getmatrix(network_model, "omega_zeta")
    centrality_omega<- centrality(model_omega)
    model_beta <- getmatrix(network_model, "beta")
    centrality_beta<- centrality(model_beta)
    subjno <- as.list(dataframe[1,2])
    centralities[nrow(centralities) + 1,] <- c(subjno,centrality_omega$InExpectedInfluence,centrality_beta$InExpectedInfluence,centrality_beta$OutExpectedInfluence)
    assign('centralities',centralities, envir=.GlobalEnv)
    }

然后对所有数据帧使用 lapply 重新运行代码(忽略错误):

lapply_with_error <- function(X,FUN,...){    
  lapply(X, function(x, ...) tryCatch(FUN(x, ...),
                                      error=function(e) NULL))
}
lapply_with_error(fullDataDetrend_split, FUN = analyze_one)

【讨论】:

    猜你喜欢
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2020-09-08
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多