作为我在下面的代码中使用sapply删除for循环的学习练习,我试图使用sapply返回最小的向量:
f3 <- function(nv) {
min(nv)
}
myv = c(1:10)
y <- sapply(myv, f3)
y
正如预期的那样,不是将min函数应用于整个fector以返回1,而是为返回1 2 3 4 5 6 7 8 9 10
的向量中的每个元素计算min。
如何使用sapply处理整个向量,因此返回1?
答案 0 :(得分:4)
您可以将min
应用于整个矢量
myv <- 1:10
min(myv)
#> [1] 1
min
将返回您提供的任意数量参数的最小值。如果您的数据结构比数据框之类的矢量更复杂,并且您希望每列的最小值比使用sapply
要小,尽管还有其他选择。以下是使用sapply
可能有意义的示例:
mydf <- data.frame(x = 1:10, y = 11:20, z = 21:30)
min(mydf)
#> [1] 1
sapply(mydf, min)
#> x y z
#> 1 11 21