繁体   English   中英

将 R 中的因子转换为日期以创建虚拟变量

[英]convert factor to date in R to create dummy variable

我需要为数据集“县”中的变量“日期”为“2020 年 4 月 11 日之前和之后”创建虚拟变量。 数据集中有一百多个日期。 我试图用 as.date function 来隐藏从因子到日期的日期,但得到 NA。 你能帮忙找出我在哪里出错吗? 我保留了我创建的另一个虚拟变量以防万一,如果它影响整体结果

counties <- read.csv('C:/Users/matpo/Desktop/us-counties.csv')
str(counties)
as.Date(counties$date, format = '%m/%d/%y')
#create dummy variables forNew York, New Jersey, California, and Illinois
counties$state = ifelse(counties$state == 'New Jersey' & 
               counties$state == 'New York'& counties$state == 'California' & 
               counties$state == 'Illinois', 1, 0)
counties$date = ifelse(counties$date >= "4/11/2020", 1, 0)

str output

 $ date  : logi  NA NA NA NA NA NA ...
 $ county: Factor w/ 1774 levels "Abbeville","Acadia",..: 1468 1468 1468 379 1468 1178 379 1468 979 942 ...
 $ state : num  0 0 0 0 0 0 0 0 0 0 ...
 $ fips  : int  53061 53061 53061 17031 53061 6059 17031 53061 4013 6037 ...
 $ cases : int  1 1 1 1 1 1 1 1 1 1 ...
 $ deaths: int  0 0 0 0 0 0 0 0 0 0 ...``

谢谢!

  1. 您的as.Date格式不正确,您应该使用"%Y"表示 4 位数年份。

  2. 您需要将值分配回 ( <- ) 以使值更改。

  3. "4/11/2020"只是一个字符串,如果您要比较日期,则需要将其转换为日期 object。 您也可以避免在此处使用ifelse

尝试:

counties$date <- as.Date(counties$date, format = '%m/%d/%Y')
counties$dummy <- as.integer(counties$date >= as.Date('2020-04-11'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM