我已经附上了我的代码,我有问题,下面:
library(dplyr)
library(perm)
data(iris)
# Create subset to only see setosa and virginica species
iris_subset <- iris %>%
filter(Species %in% c("setosa", "virginica"))
# Define test statistic
difference <- diff(mean(iris_subset$Sepal.Length[iris_subset$Species == "setosa"]),
mean(iris_subset$Sepal.Length[iris_subset$Species == "virginica"]))
# Define function
permutation_test <- function(data) {
permutated_species <- sample(data$Species)
permutated_diff <- diff(mean(data$Sepal.Length[permutated_species == "setosa"]),
mean(data$Sepal.Length[permutated_species == "virginica"]))
return(permutated_diff)
}
# Permutation test
set.seed(13)
permutation_results <- permTS(iris_subset$Sepal.Length, group = iris_subset$Species, testStatistic = perm_test, nrepl = 10000)
# Calculate p-value
p_value <- permutation_results$p.value
# Print p-value
cat("P-value:", p_value, "\n")
我一直在我的代码中得到各种各样的错误,所有这些都围绕着置换测试部分,我不确定如何修复它,以便我可以得到我的p值.
我把我的代码放入ChatGPT,看看它是否可以修复我的错误,主要的一个是:
"Error in permTS.default(iris_subset$Sepal.Length, group = iris_subset$Species, : argument "y" is missing, with no default"
我添加了一个y,因为这是iris_subset $Species所缺少的,我得到了一个错误,即x和y都需要是数字.我也试过使用库(coin)和库(exactRankTest),重新编码我的原始代码以适应包,但仍然存在错误.