Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

combining values of two variables together to create a new variable using r

Tags:

variables

r

I need to create a new variable by combining the values of two existing variables

anim <- c(1,2,3,4,5,6,7,8,9,10)
pgrp <- c(1,3,2,4,2,3,1,2,4,3)
fos <- c(2,1,1,2,1,2,1,2,2,1)
data <- data.frame(anim,pgrp,fos)
data
   anim pgrp fos
1     1    1   2
2     2    3   1
3     3    2   1
4     4    4   2
5     5    2   1
6     6    3   2
7     7    1   1
8     8    2   2
9     9    4   2
10   10    3   1

I need my new variable "pf" to take the values of "pgrp" and "fos" as shown below

data
   anim pgrp fos pf
1     1    1   2 12
2     2    3   1 31
3     3    2   1 21
4     4    4   2 42
5     5    2   1 21
6     6    3   2 32
7     7    1   1 11
8     8    2   2 22
9     9    4   2 42
10   10    3   1 31
like image 934
baz Avatar asked May 24 '11 00:05

baz


Video Answer


2 Answers

If your dataframe is called x just paste them together (coerces to character) and then convert to numeric

x$pf <- as.numeric(paste(x$pgrp, x$fos, sep = ""))

(Do not use "data" as a name, that is a function already.)

like image 100
mdsumner Avatar answered Sep 24 '22 18:09

mdsumner


You could use arithmetic (if fos is always < 10):

df <- within(df, pf <- pgrp * 10 + fos)
like image 24
Aaron left Stack Overflow Avatar answered Sep 23 '22 18:09

Aaron left Stack Overflow