我有一个包含6个事件和它们发生时间段的csv表格。我的变量是开始日期、结束日期和事件ID。我想要创建一个横向柱状图,来展示不同类型事件持续的时间范围。X轴应该是跨越多年的日期,Y轴应该是不同种类的事件ID。理想情况下,我希望水平条形的长度代表时间跨度。一个事件会有多个时间段,即事件开始-结束,几个月后再次开始、持续一段时间并再次结束。我有大约6个事件ID,每个ID都有多个不同的发生时间段。我只想看到时间线上的发生情况,以获得一个概览......
编辑: 表格大致如下:
我尝试了以下代码:
编辑: 表格大致如下:
Begin End EventID
01.01.2000 01.05.2000 Chicago
03.04.1998 03.09.1999 New York
12.03.2014 16.07.2014 Los Angeles
12.12.2003 03.06.2004 Amsterdam
21.06.1993 14.12.1993 Paris
27.02.1995 15.03.1995 London
14.06.2002 15.06.2002 Madrid
我尝试了以下代码:
cities <- read.table(textConnection("Begin End EventID
01.01.2000 01.05.2000 Chicago
03.04.1998 03.09.1999 New York
12.03.2014 16.07.2014 Los Angeles
12.12.2003 03.06.2004 Amsterdam
21.06.1993 14.12.1993 Paris
27.02.1995 15.03.1995 London
14.06.2002 15.06.2002 Madrid
"), sep=" ", header=TRUE)
cities$Begin<- as.Date(cities$Begin, "%d.%m.%Y")
cities$End<- as.Date(cities$End, "%d.%m.%Y")
cities$EventID<- as.factor(cities$EvenID)
cities$Sep <- as.factor(1:length(cities$Begin))
library(ggplot2)
p <- ggplot(data=cities) + geom_segment(aes(x=Begin, xend=End, y=EventID, yend=EventID,
group=Sep), size=12)
针对:
cities$EventID<- as.factor(cities$EvenID)
我收到了一个错误信息,因为EventID不包含整数。
Error in `$<-.data.frame`(`*tmp*`, "EventID", value = integer(0)) :
Replacement has 0 rows. Data has 75
我需要将EventID中的数据转换成其他格式吗?如果需要,那应该是什么格式?
cities$EventID<- as.factor(cities$EvenID)
只是一个打字错误,应该是EvenID
应该是EventID
。 - Andy W