объединяя значения двух переменных вместе, чтобы создать новую переменную, используя r - PullRequest
4 голосов
/ 24 мая 2011

Мне нужно создать новую переменную, комбинируя значения двух существующих переменных

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

Мне нужна моя новая переменная "pf", чтобы принимать значения "pgrp" и "fos", как показано ниже

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

Ответы [ 2 ]

9 голосов
/ 24 мая 2011

Если ваш фрейм данных называется x, просто вставьте их вместе (приведите к символу), а затем преобразуйте в числовой

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

(Не используйте «данные» в качестве имени, это уже функция.)

3 голосов
/ 24 мая 2011

Вы можете использовать арифметику (если fos всегда <10): </p>

df <- within(df, pf <- pgrp * 10 + fos)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...