我试图用一个时间序列图比较不同的城市与一个center
数据(数据帧)。其中center
是一个R studio中的数据框对象,我已经导入。R:在一个时间序列图中独立绘制多个csv文件
我有一个165个csv文件的文件夹,每个文件都代表一个城市。我想在一幅图中加上所有165个csv文件(作为独立的名称/数据帧)加上center
数据帧。
我希望它看起来是这样的:(与x轴是时间,并与所有为纯色y轴是CO
有我想要的四件事做每个csv文件,但最终,有它的自动化,这四个动作完成到每个165个CSV文件。
1)跳过前25行的CSV文件
2)合并每个c的日期和时间列SV文件
3)拆下,其中在第3栏的单元中的值是空的行
4)更改从微克/立方米3列的名称为CO
我希望它执行以自动方式对165个csv文件中的每一个执行四个操作。然后,能够在一个图中有效地绘制新更新的csv文件。
我在一个csv文件上使用了下面的代码来查看它是否可以在一个csv上工作。我不知道如何一切都在一个有效的manner.achieve这种结合:
city1 <- read.csv("path",
skip = 25)
city1$rtime <- strptime(paste(city1$Date, city1$Time), "%m/%d/%Y %H:%M")
colnames(city1)[3] <- "CO"
city[,3][!(is.na(city[,3]))] ## side note: help with this would be appreciated, I was unsure of what goes before the comma.
总的来说,我要像上面的曲线与所有的165个城市(CSV文件)。我需要帮助将四个操作放在每个csv文件上,并将它们全部绘制在一个绘图中。
的情节, 我做这个作为一个例子:
ggplot(center, aes(rtime, CO)) + geom_smooth(aes(color="Center"))+
geom_smooth(data=city1,aes(color="City1"))+
labs(color="Legend")
UPDATE: 每个城市的CSV文件似乎已经结合起来,创造一个line.I如果我能我不知道发布确切的输出,但它看起来像下面这个:粉红色的线是城市,蓝色是center.x轴时间和y轴是CO.I希望这有助于。
结果的unique(df.cleaned$cities)
> unique(df.cleaned$cities)
[1] "WFH4N_YEK04_PORTLAND_08AUG16_R1"
[2] "WFH2N_QIM23_AUSTIN_30JUL16_R1"
[3] "WFH7N_QIM70_NEWYORK_20JUL16_R1"
[4] "WFH3N_YEK28_NAMPA_23AUG16_R1"
[5] "WFH9N_YEK18_MESA_12JUL16_R1"
[6] "WFH6N_QIM10_OAKLAND_11AUG16_R1"
[7] "WFH3N_YEK01_DETROIT_30AUG16_R1"
[8] "WFH6N_YEK05_ATLANTA_30AUG16_R1"
[9] "WFH1N_YEK32_LONGBEACH_01JUL16_R1"
[10] "WFH8N_YEK39_LOSANGELES_30AUG16_R1"
[11] "WFH5N_YEK59_BALTIMORE_31AUG16_R1"
[12] "WFH1N_QIM19_MEMPHIS_01JUL16_R1"
[13] "WFH0N_YEK2087_DENVER_09JUL16_R1"
[14] "WFH4N_QIM43_CLEVELAND_30AUG16_R1"
[15] "WFH8N_QIM65_HARTFORD_30AUG16_R1"
[16] "WFH2N_YEK66_SEATTLE_30AUG16_R1"
[17] "WFH0N_YEK17_SANJOSE_30AUG16_R1"
要自动化阅读165 csv文件的部分,可以获取所有csv文件名称的字符矢量,然后在文件名上添加文字。例如'file_names <--list.files(path =“your folder path”,pattern =“.csv”)'获取文件名,然后'lapply(file_names,FUN = function(file){...}) ' – shaojl7
随着我发布的正则表达式,所有这些将解析为“”,因为你的城市名称是大写的,而不是像你给的例子一样的标题情况。如果您不尝试提取城市名称,而是像这样留下那一列“城市”,那么您的情节应该为每个城市分别设置不同的行,如'aes(color = cities)'所给出的。这部分工作是否正确? – Brian
@Brian我决定不尝试正则表达式,当我意识到我给出的例子是不同的。没有添加正则表达式,它仍然给了我一行。 – Mah