gpt4 book ai didi

r - 如何编写一个 apply() 函数来将矩阵列中的每个元素限制为最大允许值?

转载 作者:行者123 更新时间:2023-12-05 09:03:32 26 4
gpt4 key购买 nike

我正在尝试学习如何使用 apply()功能。

假设我们有一个 3 行 2 列的矩阵 test <- matrix(c(1,2,3,4,5,6), ncol = 2) , 例如我们希望第一列 (1, 2, 3) 中每个元素的最大值不超过 2,所以我们最终得到一个矩阵 (1,2,2,4,5,6) .

如何写一个 apply()功能来做到这一点?

这是我最近的尝试:test1 <- apply(test[,1], 2, function(x) {if(x > 2){return(x = 2)} else {return(x)}})

最佳答案

我们可以在第一列上使用 pmin 并将值 2 作为第二个参数,以便它对回收的 2 进行逐元素检查,并从第一列中获取每个值的最小值

test[,1] <- pmin(test[,1], 2)

-输出

> test
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 2 6

请注意,apply 需要“X”作为数组/矩阵或具有 dimensions 的数组/矩阵,当我们仅对单个列/行进行子集化时,它会降低维度因为默认情况下 drop = TRUE

关于r - 如何编写一个 apply() 函数来将矩阵列中的每个元素限制为最大允许值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69948686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com