首页 > 解决方案 > 在多个变量上运行函数的代码出错,错误在哪里?

问题描述

运行函数 pvalues 时出现一些错误,但我不知道出了什么问题。我想它与()有关。任何人都可以看到吗?还是您无法在多行上运行的问题?在那种情况下,你会怎么做?

set.seed(1)
  id <- rep(1:3,each=4)
  trt <- rep(c("A","OA", "B", "OB"),3)
  pointA <- sample(1:10,12, replace=TRUE)
  pointB<- sample(1:10,12, replace=TRUE)
  pointC<- sample(1:10,12, replace=TRUE)
  test <- data.frame(id,trt,pointA, pointB,pointC)
  test

  pvalues <- sapply( test[,3:5] , FUN = function(x) 
    dflmer <- lmer(test[,x] ~ (1|id) + trt, data=test
    printanov <- Anova(dflmer, type=3)
    printanov$`Pr(>Chisq)`[[2]]
    )
    data.frame(pvalues)

标签: r

解决方案


您需要在sapply. 下面的代码应该可以工作。也是test[,x]多余的,使用x.

pvalues <- sapply(test[,3:5], FUN = function(x) {
  dflmer <- lmer(x ~ (1|id) + trt, data=test)
  printanov <- Anova(dflmer, type=3)
  printanov$`Pr(>Chisq)`[[2]]
})

推荐阅读