Используйте dplyr (я думаю), чтобы управлять набором данных - PullRequest
0 голосов
/ 07 марта 2019

Я даю набор данных под названием ChickWeight.Это имеет вес цыплят за период времени.Мне нужно ввести новую переменную, которая измеряет текущую разницу веса по сравнению с днем ​​0.

Сначала я очистил набор данных и вынул только цыплят, которые были зарегистрированы для всех 12 взвешиваний:

library(datasets)
library(dplyr)
Frequency <- dplyr::count(ChickWeight$Chick)
colnames(Frequency)[colnames(Frequency)=="x"] <- "Chick"
a <- inner_join(ChickWeight, Frequency, by='Chick') 
complete <- a[(a$freq == 12),]
head(complete,3)

Этот набор данных находится в библиотеке (наборах данных) r, называемой ChickWeight.

1 Ответ

0 голосов
/ 07 марта 2019

Вы можете попробовать:

library(dplyr)

ChickWeight %>% 
  group_by(Chick) %>%
  filter(any(Time == 21)) %>%
  mutate(wdiff = weight - first(weight))

# A tibble: 540 x 5
# Groups:   Chick [45]
   weight  Time Chick Diet  wdiff
    <dbl> <dbl> <ord> <fct> <dbl>
 1     42     0 1     1         0
 2     51     2 1     1         9
 3     59     4 1     1        17
 4     64     6 1     1        22
 5     76     8 1     1        34
 6     93    10 1     1        51
 7    106    12 1     1        64
 8    125    14 1     1        83
 9    149    16 1     1       107
10    171    18 1     1       129
# ... with 530 more rows
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...