0

这是一个基本问题;我为此道歉。让x <- c(1,2,3,4,5). 我想生成一个z长度为 5 st 的向量,它的成分都是x满足条件的

如果x[i]>2然后写2

结果应该看起来像

z <- c(1,2,2,2,2)

我知道

z <- which(x>2)

给我

3 4 5 

但我找不到一个好的方法来实现它以获得结果。我感谢大家的支持。

编辑。如果我没有考虑向量,而是有一个带有列x的矩阵,并且我想将上述修剪应用于未触及的列,我应该如何进行?Mxyxy

4

2 回答 2

3

您可以使用pmin

pmin(x, 2)
# [1] 1 2 2 2 2
于 2013-06-24T09:57:12.857 回答
1

例如:

y <- x
y[x>2] <- 2
1 2 2 2 2

如果您matrix M有两列,并且只想将第一列替换为 > 2 到 2 的值,请执行以下操作:

M[,1][M[,1]>2] <- 2
于 2013-06-24T09:56:05.007 回答