我有一种感觉apply
(或apply
的某些变体)在这里。
请考虑以下事项:
x <- matrix(c(1, 2,
3, 4),
ncol = 2,
nrow = 2,
byrow=TRUE)
y <- c(1, 2)
我想取x的第i行,并从中减去y的第i个分量,因为i = 1,2。
最终输出应为
[,1] [,2]
[1,] 0 1
[2,] 1 2
我想也许
apply(X = x, MARGIN = 1, FUN = '-', y)
[,1] [,2]
[1,] 0 2
[2,] 0 2
会做到这一点,但这是错误的。我的猜测是这里发生的是x的每一行都被视为一个二维向量,然后从y
中减去(我回忆起前一课apply
,出于某种原因,转换这个结果)。
我特别感兴趣的是不必将cbind
矩阵和矢量放在一起,并创建一个计算字段。
答案 0 :(得分:1)
猜猜你可以这么做:
> x - y
[,1] [,2]
[1,] 0 1
[2,] 1 2