перекодирование с использованием R - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть набор данных с dam, sire и другими переменными, но мне нужно перекодировать мои dam и sire id.Колонна плотины отсортирована, и каждое животное появляется только один раз.С другой стороны, столбец производителей не отсортирован, и некоторые животные появляются более одного раза.

Я бы хотел начать нумерацию дамб с 50 000, чтобы первое животное получило 50001, второе животное 50002 и так далее.У меня есть этот сценарий, который нумерует каждую плотину от 1 до N, и мне интересно, можно ли ее изменить, чтобы она начиналась с 50 000.

mydf$dam2 <- as.numeric(factor(paste(mydf$dam,sep=""))) 

* РЕДАКТИРОВАНИЕ мой набор данных похож на этот, но больше переменных

dam <- c("1M521","1M584","1M790","1M871","1M888","1M933")
sire <- c("1X057","1T456","1W865","1W209","1W209","1W648")
wt <- c(369,300,332,351,303,314)
p2 <- c(NA,16,18,NA,NA,15)
mydf <- data.frame(dam,sire,wt,p2)

Для колонки Sire я хотел бы начать нумерацию с 10 000.

Любая помощь будет принята с благодарностью.

Баз

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

В настоящий момент эти столбцы "sire" и "dam" являются факторными переменными, но в данном случае это означает, что вы можете просто добавить результаты as.numeric () к вашему базовому числу:

> mydf$dam_n <- 50000 +as.numeric(mydf$dam)
> mydf$sire_n <- 10000 +as.numeric(mydf$sire)
> mydf
    dam  sire  wt p2 dam_n sire_n
1 1M521 1X057 369 NA 50001  10005
2 1M584 1T456 300 16 50002  10001
3 1M790 1W865 332 18 50003  10004
4 1M871 1W209 351 NA 50004  10002
5 1M888 1W209 303 NA 50005  10002
6 1M933 1W648 314 15 50006  10003
0 голосов
/ 07 сентября 2011

Почему бы не использовать:

names(mydf$dam2) <- 50000:whatEverYourLengthIs

Я не уверен, полностью ли я понял ваши структуры данных, но обычно для установки имен используется функция names.

EDIT:

Вы можете использовать dimnames для имен столбцов и строк. Как:

  [,1] [,2]
a    1    2
b    4    5
c    7    8

и

dimnames(mymatrix) <- list(c("Jan", "Feb", "Mar"), c("2005", "2006"))

выходы

          2005     2006
Jan          1        2
Feb          4        5
Mar          7        8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...