【问题标题】:Extract rows for the first occurrence of a variable in a data frame when date is on the x axis and states当日期在 x 轴上并且状态时,提取数据框中第一次出现变量的行
【发布时间】:2020-11-13 00:30:31
【问题描述】:

编辑: 示例:

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

我正在尝试查找自美国不同县出现第一例 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 来尝试获取该数据中的第一个匹配项。

【问题讨论】:

  • 根据您的描述,我觉得slice_head功能整理数据后可能会有帮助
  • Ronak Shah 谢谢提醒,我刚改了

标签: r economics


【解决方案1】:

您可以保留Counts &gt; 0 所在的行,然后为每个FIPS 选择第一行。

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

【讨论】:

  • 切片函数的 1L 部分是什么 - 为什么不只是 slice(1)?
  • 是一样的。 1L 是整数,1 是数字。
  • 如果我使用的是一个名为“data_long”的大型数据集,我将在哪里插入它以获取该数据集中所有第一次出现的 1。
  • 如果df_long 中的列和列名相同,请使用df_long 而不是df
  • 是的,它有效,但我之前有 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))

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    相关资源
    最近更新 更多