我正在使用for循环创建日期列表的列表,日期列表的日期从打开日期到关闭日期。我的问题是列表列表包含41个项目,而不是我需要的63个项目。逻辑似乎部分正确,但输出不完整。
我正在尝试在R中创建一个折线图,以显示某个时间点打开了多少信息安全事件。
我读取了带有数据的csv。从列中创建三个向量:日期事件已打开,日期事件已关闭(如果事件尚未关闭,请用今天的日期替换NA)和事件编号。我使用lubridate将两个日期向量格式化为日期。
我用这三个向量创建数据帧,并将行数作为变量n(在本例中为63)。我创建一个空列表,然后运行for循环以创建列表列表,列表中的每个项目都是从打开日期到关闭日期的日期序列。
我的问题是列表中包含41个项目,而不是我需要的63个项目。
library(lubridate)
incidents.data <- read.csv("incidents2019.csv")
#Create vector for columns that with data of incident open date, incident closed dates and incident number
incident.open <- dmy(incidents.data$Date.Reported.to.InfoSecGov..Day.B.)
incident.closed <- mdy(incidents.data$Closing.Date..Day.I.)
incident.number <- incidents.data$Incident.Num
incident.closed.full <- incident.closed %>% replace_na(as.Date ("2019/6/12"))
data <- data.frame(incident.number, incident.open, incident.closed.full)
n <- nrow(data)
mylist <- list()
for(i in 1:n){
mylist[[i]] <- seq(as.Date(data$incident.open[i]), as.Date (data$incident.closed.full[i]), "days")
}
d <- do.call("c", mylist)
df <- data.frame(table(d))
plot(df$d, df$Freq, main = "Information Security Incidents In Process", xlab="Date", ylab="# of InfoSec Incidents in Process")
lines(df$Freq)
我收到此错误消息:
seq.int(0,to0-from,by)中的错误:“ by”参数中的错误登录