Создание «сводной таблицы» в R, заполненной значением фактора для каждой строки - PullRequest
0 голосов
/ 02 сентября 2018

Я бы хотел взять ввод даты следующим образом:

library(plyr)
names(ChickWeight) <- tolower(names(ChickWeight))
ChickWeight$diet.name <- as.factor(revalue(ChickWeight$diet, c("1" = "Grain", "2" = "Grubs", "3" = "Scraps", "4" = "Free Range")))

, который создает:

> head(ChickWeight)
  weight time chick diet diet.name
1     42    0     1    1     Grain
2     51    2     1    1     Grain
3     59    4     1    1     Grain
4     64    6     1    1     Grain
5     76    8     1    1     Grain
6     93   10     1    1     Grain

> tail(ChickWeight)
    weight time chick diet  diet.name
573    155   12    50    4 Free Range
574    175   14    50    4 Free Range
575    205   16    50    4 Free Range
576    234   18    50    4 Free Range
577    264   20    50    4 Free Range
578    264   21    50    4 Free Range

И из этих данных извлеките другой набор данных (chick.feed), который выглядит следующим образом:

chick   diet.name
    1       Grain
    2       Grain
    .           .
    .           .
    .           .
   21       Grubs
   22       Grubs
    .           .
    .           .
    .           .
   31      Scraps
   32      Scraps
    .           .
    .           .
    .           .
   49  Free Range
   50  Free Range

Т.е. я хотел бы создать "сводную таблицу" (chick.feed), в которой вычисляемое значение для каждой строки (здесь chick) является буквенным значением ("фактор" в R-говорить) все различные ряды для этой цыпочки в ChickWeight.

(Мой вопрос, похоже, похож, но не идентичен с вопросом о преобразовании длинных данных в широкие .)

1 Ответ

0 голосов
/ 02 сентября 2018

Нет необходимости менять форму. Просто возьмите нужные столбцы и сохраните уникальные строки:

unique(ChickWeight[ , c("chick", "diet.name")])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...