R取单元格的最大值,列中每个元素取0

R take maximum of cell and 0 for each element in column

我正在为 R 中的(非线性)优化问题编写 objective 函数。

输入:两列A和B,长度为N 假设 A_n 是 A 列的第 n 个单元格,n

我不想使用循环,因为我想将它编码为一个函数。 我已经尝试过: 最大值(AB,0) 适用(AB,最大值) 两者都会导致每个单元格 C_n 具有 AB 列的最大值,这对我来说很有意义。但是,我只想将 AB 中每个单元格的结果与零进行比较,并将负值替换为零。如何在不使用循环或多个步骤的情况下做到这一点?

一个选项是使用 pmax

pmax(A_n, 0)
#[1] 0 2 0 4

或使用replace

replace(A_n, A_n < 0, 0)
#[1] 0 2 0 4

数据

A_n <- c(-5, 2, -3, 4)