r - 将矩阵的一部分乘以某个数
问题描述
我有一个矩阵,我想将 2 乘以矩阵中介于 10 和 20 之间的数字,并乘以 3 乘以矩阵中介于 30 和 40 之间的数字,其他数字保持不变
例如我有两个矩阵:
Var1 Var2 Var3
20 40 50
25 5 6
20 13 45
3 8 100
最后,我想得到这个矩阵
Var1 Var2 Var3
40 120 50
25 5 6
40 26 45
3 8 100
解决方案
您可以apply
将函数ifelse
应用于要在其中乘以值的列:
mat[,1:2] <- t(apply(mat[,1:2], 1, function(x) ifelse(x >= 20 & x <=30, x*2,
ifelse(x >= 30 & x <=40, x*3, x))))
结果:
mat
Var1 Var2 Var3
[1,] 40 120 50
[2,] 50 5 6
[3,] 40 13 45
[4,] 3 8 100
数据:
mat <- structure(c(20L, 25L, 20L, 3L, 40L, 5L, 13L, 8L, 50L, 6L, 45L,
100L), .Dim = 4:3, .Dimnames = list(NULL, c("Var1", "Var2", "Var3"
)))
推荐阅读
- ios - 平移手势(按住/拖动)缩放相机,如 Snapchat
- php - 如何在函数中调用mysqli查询
- wordpress - 我可以通过 Wordpress API 获取 Wordpress 插件数据吗?
- kubernetes - 如何更改在一个端口号上运行的服务,现在我想在同一个旧端口号上运行另一项服务
- html - 如何使用我从 css 文件中导入的字体
- python-3.x - 如何使用starts_with jmespath.search 字典键
- python - 如何评估 Jupyter Notebook 中的分数(代入变量值)?
- javascript - Chrome DevTools:如何从 Sources 选项卡或 Watch 窗格中将 JSON 对象复制为文本
- spring-boot - Spring Boot 安全性在响应标头 cookie 中添加 2 个 XSRF-TOKEN
- php - PHP Laravel PDOException 一般错误引用列和外键约束中的引用列不兼容