【发布时间】:2020-12-26 02:30:03
【问题描述】:
所以我有一个名为 Swine_flu_cases 的数据框,如下所示(只是摘录):
Country Date Confirmed
1 Canada 2020-01-22 1
2 Egypt 2020-01-23 1
3 Algeria 2020-01-24 1
4 France 2020-01-25 1
5 Zambia 2020-01-26 1
6 Congo 2020-01-27 1
该数据集着眼于一个国家在特定日期记录的猪流感病例数量。
我已经过滤了我的数据以仅显示确诊病例为 1 的变量,并且还按不同的国家/地区对其进行了分组,并按日期升序对其进行了排序。 (我这样做是为了得到这些国家各自出现首例病例的日期)
我已按日期升序对其进行排序,因为我想提取每个国家首次记录猪流感病例的时间并将其存储为向量。
我尝试过使用以下代码:
first_case_date = as.Date(data.frame(Swine_flu_cases$Date))
不过,这给了我一个错误。
as.Date.default(data.frame(Swine_flu_cases$Date)) 中的错误:做 不知道如何将 'data.frame(Swine_flu_cases$Date)' 转换为类 “日期”
我想要做的是创建一个新变量Swine_flu_cases$days_since_first_case,它将首先获取我列表中每个国家/地区的存储日期,然后从每个国家/地区的所有其他日期中减去该日期。
我对 for 循环的了解非常基础,但我知道我需要为此使用 for 循环。我最近也熟悉了超前和滞后函数,并在想也许有一种方法可以结合这两个函数来创建这个变量?
如果有人能给我一个大致的想法,我将如何去做,我将不胜感激。
【问题讨论】:
-
来自帮助:as.Date 方法接受字符串、因子、逻辑 NA 和类“POSIXlt”和“POSIXct”的对象。您正在尝试将数据框传递给它并且它抱怨它。也更好地定义日期格式。试试看:
first_case_date <- as.Date(Swine_flu_cases$Date, format = "%Y-%m-%d")