web-dev-qa-db-ja.com

Rに新しい列を与えるために2つの列を引く

こんにちは、B行列の列Aから列datを差し引いてC列(A- B):

私の入力:

_A  B
1  2
2  2
3  2
4  2
_

私の予想される出力:

_A  B  C
1  2 -1
2  2  0
3  2  1
4  2  2
_

私は試しました:dat$C <- (dat$A - dat$B)ですが、_## $ operator is invalid for atomic vectors_ errorが表示されます

乾杯。

7
user3091668

上記のコメントで@Bryan Hansonが言っていたように、構文とデータ編成はデータフレームにより関連しています。私はあなたのデータをデータフレームとして扱い、以前に提供した構文を単に使用します:

> data <- data.frame(A = c(1,2,3,4), B = c(2,2,2,2))
> data$C <- (data$A - data$B)
> data
  A B  C
1 1 2 -1
2 2 2  0
3 3 2  1
4 4 2  2
16
ccapizzano

はい、本当にマトリックスを意味する場合は、この例を見ることができます

> x <- matrix(data=1:3,nrow=4,ncol=3)
> x
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    3    1
[3,]    3    1    2
[4,]    1    2    3
> x[,3] = x[,1]-x[,2]
> x
     [,1] [,2] [,3]
[1,]    1    2   -1
[2,]    2    3   -1
[3,]    3    1    2
[4,]    1    2   -1
> 
3
rischan