R 计算一组平均值,同时排除每种情况下的单个值

R 计算一组平均值,同时排除每种情况下的单个值,r,analysis,R,Analysis,我有一个包含70个案例(研究参与者)的数据集。是否有一个函数可以计算这70个病例的平均值,从而使每个病例都不包括在分析中。这看起来像: "mean for case x = (value(1) + ... value(n) - value(x))/n" 任何信息都会有所帮助。您可以按照您的建议,从总数中删除每个案例: x <- c(1:10) (sum(x) - x) / (length(x) - 1) #[1] 6.000000 5.888889 5.777778 5.666667

我有一个包含70个案例(研究参与者)的数据集。是否有一个函数可以计算这70个病例的平均值,从而使每个病例都不包括在分析中。这看起来像:

"mean for case x = (value(1) + ... value(n) - value(x))/n"

任何信息都会有所帮助。

您可以按照您的建议,从总数中删除每个案例:

x <- c(1:10)
(sum(x) - x) / (length(x) - 1)

#[1] 6.000000 5.888889 5.777778 5.666667 5.555556 5.444444 5.333333 5.222222 5.111111 5.000000

mean(2:10)
#[1] 6
mean(1:9)
#[1] 5

x以下是一种矢量化方法,以避免每次平均每个子集:

x <- runif(70)
sapply(seq_along(x), function(i) mean(x[-i]))

x您是指遗漏类型分析吗?我认为这更像是一个统计问题,是的。但是我认为SPSS没有工具来完成这项工作,所以我想我应该尝试在r中构建一个函数来完成它。我本来打算建议
sapply(seq_-along(x),function(I)的意思是(x[-I]))
但这更好。好主意,嘿@latemail?一模一样,一直到
i
。嘿,谢谢!我计算的是一个数组的一列,我想计算一列的平均值,不包括每个单独的情况。在这个场景中,与用作示例的向量不同,有什么变化?应该不会有太多变化。当你说数组时,你是指R数组还是指矩阵或data.frame?如果您心中有一个特定的数据结构,可以提供一个小示例来说明您的数据是什么样子的(例如,
dput(head(data))
)。您应该尽可能多地发布关于您的数据以及您在初始问题中实际要做的事情。我会根据你告诉我的内容更新我的答案,但请看一下。我误读了@matt_k的解决方案,发现它当然也是矢量化的。
x <- runif(70)
sapply(seq_along(x), function(i) mean(x[-i]))