#r #economics
#r #экономика
Вопрос:
Отредактировано: Пример:
FIPS Date Counts
1001 Jan_22 0
1003 Jan_22 1
1004 Jan_22 0
1001 Jan_23 1
1003 Jan_23 5
1004 Jan_23 0
1001 Jan_24 6
1003 Jan_24 10
1004 Jan_24 1
1001 Jan_25 8
1003 Jan_25 12
1004 Jan_25 3
Result:
FIPS Date Counts
1001 Jan_23 1
1003 Jan_22 1
1004 Jan_24 1
Я пытаюсь найти количество дней с момента 1-го случая Covid-19 в разных округах Соединенных Штатов. Мне нужно найти первое вхождение 1 случая, подтвержденного в этом округе, а затем получить R, чтобы сообщить мне для каждого кода FIPS, на какую дату это было в первый день, когда это было подтверждено для 1 случая. Я делаю все 3141 округ. Даты идут от Jan_22 до April_30.
Редактирование 3: И количество наблюдений равно 314200, с 3 переменными.
t.first <- data_long[match(unique(data_long$Counts, data_long$Counts))]`
Я хочу использовать t.first, чтобы попытаться получить первое вхождение в эти данные.
Комментарии:
1. Основываясь на вашем описании, я чувствую
slice_head
, что функция может быть полезна после упорядочивания данных2. Ронак Шах Спасибо за напоминание, я только что изменил его
Ответ №1:
Вы можете сохранить строки, где Counts > 0
, а затем для каждой FIPS
выбрать 1-ю строку.
library(dplyr)
df %>%
filter(Counts > 0) %>%
group_by(FIPS) %>%
slice(1L)
# FIPS Date Counts
# <int> <chr> <int>
#1 1001 Jan_23 1
#2 1003 Jan_22 1
#3 1004 Jan_24 1
Комментарии:
1. Какова часть 1L функции среза — почему бы просто не срезать (1)?
2. Это то же самое.
1L
является целым числом,1
является числовым.3. Если бы я использовал большой набор данных, где набор данных называется «data_long», куда бы я вставил это, чтобы получить все первое вхождение 1 в этом наборе данных.
4. Если у вас одинаковые столбцы и имена столбцов
df_long
, используемыеdf_long
вместоdf
.5. Да, это работает, но до этого у меня было 3142 наблюдения, теперь у меня только 2844 наблюдения, очищает ли этот код некоторые данные N / A?
Ответ №2:
Мы можем использовать base R
subset(df1[df1$Counts >0,], !duplicated(FIPS))
# FIPS Date Counts
#2 1003 Jan_22 1
#4 1001 Jan_23 1
#9 1004 Jan_24 1
данные
df1 <- structure(list(FIPS = c(1001L, 1003L, 1004L, 1001L, 1003L, 1004L,
1001L, 1003L, 1004L, 1001L, 1003L, 1004L), Date = c("Jan_22",
"Jan_22", "Jan_22", "Jan_23", "Jan_23", "Jan_23", "Jan_24", "Jan_24",
"Jan_24", "Jan_25", "Jan_25", "Jan_25"), Counts = c(0L, 1L, 0L,
1L, 5L, 0L, 6L, 10L, 1L, 8L, 12L, 3L)), class = "data.frame",
row.names = c(NA,
-12L))