bec*_*bot 1 r lapply sapply tapply
我正在尝试使用 car 包中的 leveneTest 函数运行方差同质性测试。我可以像这样对单个变量运行测试(以 iris 数据集为例)
library(car)
library(datasets)
data(iris)
leveneTest(iris$Sepal.Length, iris$Species)
Run Code Online (Sandbox Code Playgroud)
但是,我想同时对数据集中的所有因变量运行测试(所以 Sepal.Length、Sepal.Width、Petal.Length、Petal.Width)。我猜它与 apply 函数系列(sapply、lapply、tapply)有关,但我不知道怎么做。我最接近的是这样的:
lapply(iris, leveneTest(group = iris$Species))
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误
Error in leveneTest.default(group = iris$Species) :
argument "y" is missing, with no default
Run Code Online (Sandbox Code Playgroud)
我的理解可能是因为它无法指定结果变量。我确信我一定遗漏了应用函数的一些明显用法,但我只是不明白它是什么。对基本问题表示歉意,但我对 R 比较陌生,并且经常将相同的函数应用于多个变量(通常通过多次复制代码),因此了解如何正确使用这些函数会很棒:)
函数的公共参数需要传递给...inside lapply。像这样:
lapply(subset(iris, select = -Species), leveneTest, group = iris$Species)
Run Code Online (Sandbox Code Playgroud)
help("lapply")解释这...是“FUN 的可选参数”(意思是对于lapplynot for 的可选参数FUN)并提供lapply(x, quantile, probs = 1:3/4)作为示例。