我有这个数据。这是它的结构示例。
full_bajra_xts_red=structure(list(Date = structure(c(19144, 19145, 19146, 19147,
19148, 19149, 19150, 19151, 19152, 19153), class = "Date"), red = c(2127,
1302.9803048672, 1678.5, 2038, 1245.57566887554, 1982, 2088.5798414003,
1245.57566887554, 1834.12565893947, 2114)), row.names = c(NA,
10L), class = "data.frame")
full_bajra_xts_green=structure(list(Date = structure(c(19144, 19145, 19146, 19147,
19148, 19149, 19150, 19151, 19152, 19153), class = "Date"), green = c(1529,
1140.37413250597, 1225.04390857018, 1189.2683774732, 1418.5,
1542, 1380, 1376.86063429029, 1330.79379894137, 1494)), row.names = c(NA,
10L), class = "data.frame")
full_guar_xts_red=structure(list(Date = structure(c(19144, 19145, 19146, 19147,
19148, 19149, 19150, 19151, 19152, 19153), class = "Date"), red = c(2096,
1225.68256164161, 1641, 1333.91676380334, 1814.5, 2016, 1396,
2081, 2079.71725650448, 1193.11475693541)), row.names = c(NA,
10L), class = "data.frame")
full_guar_xts_green=structure(list(Date = structure(c(19144, 19145, 19146, 19147,
19148, 19149, 19150, 19151, 19152, 19153), class = "Date"), green = c(1516,
1071.73968116149, 1179, 1144.00588528805, 1498.06983978489, 1521,
1193.5, 1549, 1158.31497623564, 1296.86598194529)), row.names = c(NA,
10L), class = "data.frame")
full_arahis_xts_red=structure(list(Date = structure(c(19144, 19145, 19146, 19147,
19148, 19149, 19150, 19151, 19152, 19153), class = "Date"), red = c(2096,
1225.68256164161, 1641, 1333.91676380334, 1814.5, 2016, 1396,
2081, 2079.71725650448, 1193.11475693541)), row.names = c(NA,
10L), class = "data.frame")
full_arahis_xts_green <- data.frame(
Date = as.Date(c(19144, 19145, 19146, 19147, 19148, 19149, 19150, 19151, 19152, 19153), origin = "1970-01-01"),
green = c(1516, 1071.73968116149, 1179, 1144.00588528805, 1498.06983978489, 1521, 1193.5, 1549, 1158.31497623564, 1296.86598194529)
)
full_moong_xts_red=structure(list(Date = structure(c(19144, 19145, 19146, 19147,
19148, 19149, 19150, 19151, 19152, 19153), class = "Date"), red = c(2127,
1302.9803048672, 1678.5, 2038, 1245.57566887554, 1982, 2088.5798414003,
1245.57566887554, 1834.12565893947, 2114)), row.names = c(NA,
10L), class = "data.frame")
full_moong_xts_green= structure(list(Date = structure(c(19144, 19145, 19146, 19147,
19148, 19149, 19150, 19151, 19152, 19153), class = "Date"), green = c(1529,
1140.37413250597, 1225.04390857018, 1189.2683774732, 1418.5,
1542, 1380, 1376.86063429029, 1330.79379894137, 1494)), row.names = c(NA,
10L), class = "data.frame")
数据代表非作物文化
("guar", "bajra", "moong", "arahis")
的名称,并包含度量变量red
和green
。 (对于每个变量都有自己单独的数据集)。
我需要使用配对样本的 Wilcoxon t 检验来比较培养物对之间的每个变量。
guar vs bajra
guar vs moong
guar vs peanut
bajra vs moong
bajra vs arahis
例如,我们对瓜尔豆文化取
red
,对巴吉拉文化取 red
,并使用配对样本的 Wilcoxon T 检验对它们进行比较,依此类推,根据变量 red
和 green
对所有文化进行比较
.
这就是我的做法(作为一个可重现的示例,我只使用了 2 个变量,实际上还有更多)
> cultures <- c("guar", "bajra", "moong", "arahis")
> variables <- c("red", "green")
>
> for (culture1 in cultures) {
+ for (culture2 in cultures) {
+ if (culture1 != culture2) {
+ for (var in variables) {
+ test_result <- wilcox.test(get(paste0("full_", culture1, "_xts_", var)), get(paste0("full_", culture2, "_xts_", var)), paired = TRUE)
+ print(paste("Comparison between", culture1, var, "and", culture2, var, ": p-value =", test_result$p.value))
+ }
+ }
+ }
+ }
我得到了错误
Error in wilcox.test.default(get(paste0("full_", culture1, "_xts_", var)), :
'x' must be a number
我做错了什么,如何正确比较我的文化对之间的这些变量以及如何获得所需的输出(数字是 p 值)
var guar_bajra guar_moong guar_arahis bajra_moong bajra_arahis moong_arahis
red 0.05 0.05 0.05 0.05 0.05 0.05
green 0.05 0.05 0.05 0.05 0.05 0.05
感谢您的宝贵帮助。
您正在整个数据框上运行
wilcox.test
,而不仅仅是“红色”或“绿色”列。
尽可能减少对代码的干预,看看它是否有效:
# for (culture1 in cultures) {
# for (culture2 in cultures) {
# if (culture1 != culture2) {
# for (var in variables) {
# test_result <- wilcox.test(
get(paste0("full_", culture1, "_xts_", var))[, var],
get(paste0("full_", culture2, "_xts_", var))[, var],
# paired = TRUE)
#
# print(paste("Comparison between", culture1, var, "and", culture2, var, ": p-value =", test_result$p.value))
# }
# }
# }
# }
输出:
[1] "Comparison between guar red and bajra red : p-value = 0.625"
[1] "Comparison between guar green and bajra green : p-value = 0.16015625"
[1] "Comparison between guar red and moong red : p-value = 0.625"
[1] "Comparison between guar green and moong green : p-value = 0.16015625"
[1] "Comparison between guar red and arahis red : p-value = NaN"
[1] "Comparison between guar green and arahis green : p-value = NaN"
[1] "Comparison between bajra red and guar red : p-value = 0.625"
[1] "Comparison between bajra green and guar green : p-value = 0.16015625"
[1] "Comparison between bajra red and moong red : p-value = NaN"
[1] "Comparison between bajra green and moong green : p-value = NaN"
[1] "Comparison between bajra red and arahis red : p-value = 0.625"
[1] "Comparison between bajra green and arahis green : p-value = 0.16015625"
[1] "Comparison between moong red and guar red : p-value = 0.625"
[1] "Comparison between moong green and guar green : p-value = 0.16015625"
[1] "Comparison between moong red and bajra red : p-value = NaN"
[1] "Comparison between moong green and bajra green : p-value = NaN"
[1] "Comparison between moong red and arahis red : p-value = 0.625"
[1] "Comparison between moong green and arahis green : p-value = 0.16015625"
[1] "Comparison between arahis red and guar red : p-value = NaN"
[1] "Comparison between arahis green and guar green : p-value = NaN"
[1] "Comparison between arahis red and bajra red : p-value = 0.625"
[1] "Comparison between arahis green and bajra green : p-value = 0.16015625"
[1] "Comparison between arahis red and moong red : p-value = 0.625"
[1] "Comparison between arahis green and moong green : p-value = 0.16015625"
Warning messages:
1: In wilcox.test.default(get(paste0("full_", culture1, "_xts_", var))[, :
cannot compute exact p-value with zeroes
2: In wilcox.test.default(get(paste0("full_", culture1, "_xts_", var))[, :
cannot compute exact p-value with zeroes
3: In wilcox.test.default(get(paste0("full_", culture1, "_xts_", var))[, :
cannot compute exact p-value with zeroes
4: In wilcox.test.default(get(paste0("full_", culture1, "_xts_", var))[, :
cannot compute exact p-value with zeroes
5: In wilcox.test.default(get(paste0("full_", culture1, "_xts_", var))[, :
cannot compute exact p-value with zeroes
6: In wilcox.test.default(get(paste0("full_", culture1, "_xts_", var))[, :
cannot compute exact p-value with zeroes
7: In wilcox.test.default(get(paste0("full_", culture1, "_xts_", var))[, :
cannot compute exact p-value with zeroes
8: In wilcox.test.default(get(paste0("full_", culture1, "_xts_", var))[, :
cannot compute exact p-value with zeroes