【发布时间】:2021-06-13 01:48:15
【问题描述】:
我是 R 初学者,我尝试从头开始制作中值函数。
这是我的代码:
mymedian <- function(x) {
len <- length(x)
sorted <- sort(x)
if (len %% 2 == 0) {
med1 <- sorted[len / 2]
med2 <- sorted[(len + 1) %/% 2]
result <- sorted[med1 + med2 / 2]
return(result)
} else {
result <- sorted[(len + 1)/2]
return(result)
}
}
我得到“NA”输出。我找不到问题出在哪里。
【问题讨论】:
-
您的子集太早了,在第 5 行和第 6 行尝试
med1 <- len/2。第 8 行可能缺少括号。 -
仔细看看,比较第 7 行和第 10 行。
-
@jay.sf 即使使用您编辑的代码,我仍然会得到“NA”。我试图将 2 个向量与 append 函数合并,这可能是问题吗?
-
我只是把你的代码用空格分开了一点,没有真正的编辑。