【发布时间】:2021-12-25 20:25:27
【问题描述】:
假设我们有一个如下所示的“测试”矩阵:(1,2,3, 4,5,6, 7,8,9, 10,11,12) 通过运行test <- matrix(1:12, ncol = 4) 生成。一个简单的 3 x 4(行 x 列)矩阵,包含从 1 到 12 的数字。
现在假设我们想为每个 奇数 矩阵列中的每个元素添加一个值 1,所以我们最终得到一个包含以下值的矩阵:(2,3, 4、4、5、6、8、9、10、10、11、12)。我们如何使用apply() 函数来做到这一点?
请注意,这是一个简化的示例。在我正在使用的更完整的代码中,矩阵根据用户输入动态扩展/收缩,因此我需要一个 apply() 函数来计算矩阵列的实际数量,而不是使用上述 4 列的固定假设例子。 (而且我没有向元素添加值 1;我正在运行并行最小值函数 test[,1] <- pmin(test1[,1], 5) 以将每个值限制为最大值 5)。
由于我目前对apply() 系列函数的了解有限,目前我所能做的就是apply(test, 2, function(x) {return(x+1)}),但这是为所有列中的所有元素添加值1,而不仅仅是奇数列。
【问题讨论】: