gpt4 book ai didi

r - 对所有列应用乘法,但仅对具有正值的行应用乘法

转载 作者:行者123 更新时间:2023-12-04 01:12:20 24 4
gpt4 key购买 nike

我有以下矩阵:

 m <- as.matrix(data.frame(a = c(-1,2,3,4),
b = c(-1,2,2,-4),
c = c(-1,3,1,-2)))

我想将每一列与向量 v 中的相应值相乘,向量 v 的长度与 m 中的列数相同。我只想将该乘法应用于该列中的正值。

v <- c(2,3,-3)

使得 a 列变为 (-1,4,6,8)

我的数据集很大,所以我正在寻找一个优雅的解决方案

最佳答案

to_upd <- which(m>0)
m[to_upd] <- (m * v[col(m)])[to_upd]
m
# a b c
# [1,] -1 -1 -1
# [2,] 4 6 -9
# [3,] 6 6 -3
# [4,] 8 -4 -2

数据

v <- c(2,3,-3)
m <- cbind(
a = c(-1,2,3,4),
b = c(-1,2,2,-4),
c = c(-1,3,1,-2)
)

关于r - 对所有列应用乘法,但仅对具有正值的行应用乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64443025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com