R 确保矩阵中的值在设定范围内?

R 确保矩阵中的值在设定范围内?,r,matrix,R,Matrix,我是R的新手,我正在研究操作一组数据的函数 我有一个20乘5的值矩阵,我加上一个-1到1之间的随机数。如何确保矩阵中的所有值以高效快速的方式保持在0-10之间(无需使用循环一次检查一个值) 规则如下: 如果值大于10,则将其更改为10 如果某个值小于 那是0,把它改成0 感谢您的帮助。谢谢 类似于 m[] <- pmax(0,pmin(10,m)) 现在夹紧: mAdded[] <- pmax(lwr,pmin(upr,mAdded)) str(mAdded) ## still

我是R的新手,我正在研究操作一组数据的函数

我有一个20乘5的值矩阵,我加上一个-1到1之间的随机数。如何确保矩阵中的所有值以高效快速的方式保持在0-10之间(无需使用循环一次检查一个值)

规则如下:

  • 如果值大于10,则将其更改为10
  • 如果某个值小于 那是0,把它改成0
感谢您的帮助。谢谢

类似于

m[] <- pmax(0,pmin(10,m))
现在夹紧:

mAdded[] <- pmax(lwr,pmin(upr,mAdded))
str(mAdded)
## still a matrix: num [1:20, 1:5] 2.72 0 6.1 7.58 3.5 ...
range(mAdded)  ## 0 10

mAdded[]
matrix(样本(c(-1,1),大小=100,替换=TRUE),nrow=20)
可能更直截了当一点谢谢@Ben Bolker.:-)改进的代码:
library(dplyr)
mRaw%as.integer%>%matrix(nrow=20,ncol=5)
m1我不介意用管道代替它们,但它们在这里似乎没有多大价值……我来自一个pythonic国家。我用dplyr写-嗯,我不认为管道是pythonic的:--至少看起来是熊猫的
-特定的?(我想我更喜欢
x%>%fun1()%>%fun2()
而不是
x.pipe(fun1).pipe(fun2)
mAdded[] <- pmax(lwr,pmin(upr,mAdded))
str(mAdded)
## still a matrix: num [1:20, 1:5] 2.72 0 6.1 7.58 3.5 ...
range(mAdded)  ## 0 10