取第一行数据帧,然后用向量的第i个分量减去它

时间:2016-04-08 12:34:55

标签: r

我有一种感觉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矩阵和矢量放在一起,并创建一个计算字段。

1 个答案:

答案 0 :(得分:1)

猜猜你可以这么做:

> x - y
     [,1] [,2]
[1,]    0    1
[2,]    1    2