切断矩阵中"n"以下的所有数字

Lef*_*eft 1 r matrix

对R来说相当新.我想要做的是将矩阵中的所有数字都说成5,低于5.例如,如果矩阵是这样的:

1 3 2 5 7
3 8 3 6 2
Run Code Online (Sandbox Code Playgroud)

我想进入:

1 3 2 5 5
3 5 3 5 2
Run Code Online (Sandbox Code Playgroud)

我觉得必须有一种更有效的方法,而不是每次都用手做.任何帮助,将不胜感激.

Ron*_*hah 6

是的,你可以做到

mat[mat > 5] <- 5 


#     V1 V2 V3 V4 V5
#[1,]  1  3  2  5  5
#[2,]  3  5  3  5  2
Run Code Online (Sandbox Code Playgroud)

@Gregor拥有最聪明的解决方案,但只是为了给你更多选择,你可以做到

ifelse(mat > 5, 5, mat)
Run Code Online (Sandbox Code Playgroud)

或者@Sotos提到

replace(mat, mat > 5, 5)
Run Code Online (Sandbox Code Playgroud)