r - 使用 mapply() 为多个参数留出一个?

标签 r

使用单个向量A = c(1,2,3,4,5) ,我可以写

 sapply(A, function(a) mean(A[-a]))

计算五个均值:没有第一个元素的 A 的均值、没有第二个元素的 A 的均值等。

我想同时对两个或多个向量进行这样的留一操作。例如,使用 B <- c(6,7,8,9,10) ,我想我可以输入

myFunc <- function(a, b){return( c(mean(A[-a]), mean(B[-b])) )}
mapply(myFunc, A, B)

但这仅计算 A 的留一法平均值:

     [,1] [,2] [,3] [,4] [,5]
[1,]  3.5 3.25    3 2.75  2.5
[2,]  8.0 8.00    8 8.00  8.0

并为 B 输出一行 8.0s。我做错了什么?

最佳答案

在第一个向量“A”中,值与序列相同。因此,当我们使用该值进行索引并删除时,它会删除相应的值。在第二个向量“B”中,情况并非如此,即 B[-6]B[-7] 仍然给出整个向量。相反,循环遍历序列

mapply(myFunc, seq_along(A), seq_along(B))

关于r - 使用 mapply() 为多个参数留出一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54829025/

相关文章:

r - 如何在R中绘制高斯图模型

r - 指定试验次数、 Bootstrap

r - R 中的命名空间循环引用

r - 在函数中调用print(ls.str())影响rep的行为

R:它能走多远? (加上通风)

r - 错误: missing values and NaN's not allowed if 'na.rm' is FALSE

r - 当我在 group_by() 和 summarize() 链中使用自己的函数时,它错误地为每个组返回相同的结果

r - 是否有估计多元自然三次样条(或类似)函数的 R 库?

r - ggplot2:箱线图是否仅用于计算位于 y 轴范围内的值?

r - rmarkdown - 渲染数据帧列表