Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Subtracting two columns to give a new column in R

Tags:

syntax

r

Hello I´am trying to subtract the column B from column A in a dat matrix to create a C column (A - B):

My input:

A  B
1  2
2  2
3  2
4  2

My expected output:

A  B  C
1  2 -1
2  2  0
3  2  1
4  2  2

I have tried: dat$C <- (dat$A - dat$B), but I get a: ## $ operator is invalid for atomic vectorserror

Cheers.

like image 604
user3091668 Avatar asked May 27 '14 11:05

user3091668


2 Answers

As @Bryan Hanson was saying in the above comment, your syntax and data organization relates more to a data frame. I would treat your data as a data frame and simply use the syntax you provided earlier:

> 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
like image 154
ccapizzano Avatar answered Oct 12 '22 13:10

ccapizzano


Yes right, If you really mean a matrix, you can see this example

> 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
> 
like image 22
rischan Avatar answered Oct 12 '22 15:10

rischan