我有一个迭代/缩放问题。
我有一个dataframe = geocoded 它有关于12个地区= LA
的信息我可以对此数据进行子集化,并将此子集的结果写入多个文件
## read data in from geocoded file
geocoded1<-read.csv("S:/somestuff/geocoded 2015 - 2018.csv",na.strings=c(""," ","N/A"))
geocoded<-subset(geocoded1,geocoded1$CONFIDENCE !="Discarded")
#split geocoded data by LA
x <-split(geocoded,list(geocoded$LA),drop = TRUE,sep = "_")
#Split geocoded data by LA and Final
#split(x, f, drop = FALSE, sep = ".", lex.order = FALSE, .)
y<-split(geocoded,list(geocoded$LA,geocoded$DISEASE), drop = TRUE, sep = "_")
#write CSV files of geocoded to file locations
lapply(names(x), function(name) write.csv(x[[name]], file = paste('S:/some stuff/LA/',name,".csv",sep="")))
lapply(names(y),function(name) write.csv(y[[name]], file = paste('S:/some stuff/LAFinal/',name,".csv",sep="")))
我可以将这个子集的结果写入全局环境(我需要吗?)
#write the results of subsetting data into x and y to the global environment
list2env(x,envir = .GlobalEnv)
list2env(y,envir = .GlobalEnv)
我可以在小平面包装中为每个数据框绘制一个堆积条
# Stacked Bar Plot with Colors and Legend
bm<-ggplot(data =DATA,aes(x=MONTH,fill=FILL))+geom_bar()
bm +facet_wrap("~YEAR,ncol = 5)
我可以手动完成它们(不,我不能在那里大约100个!)。
如何以与将其写入文件相同的方式绘制x或y的内容?我在那里使用了lapply。有没有办法lapply或类似可以说 之一: 对于x绘图堆积的条形图中的所有名称,以年为单位 要么 对于按年度划分的全球环境中的所有数据框
我计划绘制一个堆积的条形图,按年划分,有4年;在y上具有相同的比例,x表示一年中的月份,填充基于另一列(例如性别)。 我想标准化每个情节的外观,使它们成为透明的背景。
提前致谢
编辑:
# Stacked Bar Plot with Colors and Legend
bm<-ggplot(data =LADISEASE1,aes(x=MONTH,fill=FILL))+geom_bar()
bm +facet_wrap("~YEAR,ncol = 5)
当我分裂洛杉矶和疾病时,我每个LA产生20个疾病数据帧(只要它们不是空的,所以~200)。
再次编辑: 使用评论中的数据
DISEASE = c("Marco Polio","Marco Polio","Marco Polio","Marco Polio","Marco Polio",
"Mumps","Mumps","Mumps","Mumps","Mumps",
"Chicky Pox","Chicky Pox","Chicky Pox","Chicky Pox","Chicky Pox")
YEAR = c(2011, 2012, 2013, 2014, 2015,
2011, 2012, 2013, 2014, 2015,
2011, 2012, 2013, 2014, 2015)
MONTH =c(1,2,3,4,5,6,7,8,9,10,11,12,1,12)
LA = c("A","B","C")
VALUE = c(82,89,79,51,51,
79,91,69,89,78,
71,69,95,61,87)
我可以对单个数据帧做些什么呢
#split geocoded data by LA
LA <-split(geocoded,list(geocoded$LA),drop = TRUE,sep = "_")
str(LA)
将大数据帧拆分为12个区域+丢失。
我想我正在尝试(并且未能描述)解决的问题是如何为每年每个LA创建一个包含20个时间轴图表的面板。 例如,区域a,感染1-20,2015-2018之间的每年。
我是否会在年份和感染方面对图表进行分析,或者首先对数据框进行切片然后再对图表进行分割?
显示的示例很棒!它让我想到,我应该这样做。这样一个人就可以很快看到每年的病例数。
切割数据框并制作新数据框非常容易,我得到了一点点。我需要做的就是在一个数据框上工作,但输出图表作为我可以粘贴/写入文档的图形。
答案 0 :(得分:0)
如果可能,我建议不要拆分成不同的数据框。而是将所有数据保存在单个数据框中,并在DISEASE变量上进行分面,以便为每种疾病获取单独的图表。也许以下代码会让您了解可以获得所需最终结果的另一条路径:
library(tidyverse)
DISEASE = c("Marco Polio","Marco Polio","Marco Polio","Marco Polio","Marco Polio",
"Mumps","Mumps","Mumps","Mumps","Mumps",
"Chicky Pox","Chicky Pox","Chicky Pox","Chicky Pox","Chicky Pox")
YEAR = c(2011, 2012, 2013, 2014, 2015,
2011, 2012, 2013, 2014, 2015,
2011, 2012, 2013, 2014, 2015)
VALUE = c(82,89,79,51,51,
79,91,69,89,78,
71,69,95,61,87)
DATA = data.frame(DISEASE, YEAR, VALUE)
plot = ggplot(DATA) +
geom_bar(aes(x=YEAR, y=VALUE), stat="identity") +
facet_grid(~DISEASE)
print(plot)