【发布时间】:2017-03-22 12:03:25
【问题描述】:
我有 60 个具有相同列名的数据框存储在我使用此代码获得的列表中:
setwd("C:/Users/Visitor/Desktop/Unesco/")
temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.csv)
我的一个 csv 文件的一部分:
"","PRO","TRA","MEN","ENF","COU","TOI","REP","SOM","TEL","LOI"
"HAU","610","140","60","10","120","95","115","760","175","315"
"FAU","475","90","250","30","140","120","100","775","115","305"
"FNU","105","0","495","110","170","110","130","785","160","430"
"HMU","616","141","65","10","115","90","115","765","180","305"
"FMU","179","29","421","87","161","112","119","776","143","373"
我对我的所有数据框的 PRO 和 TRA 列做了一个 ggplot 合并到一个数据框中:
library(dplyr)
library(reshape2)
library(ggplot2)
cols <-lapply(myfiles,function(x)select(x,PRO,TRA))
big_df2 <- do.call(rbind,cols)
df.m2 <- melt(big_df2)
ggplot(df.m2) + geom_freqpoly(aes(x = value,
+ y = ..density.., colour = variable))
我有这个输出:
但我想分别为我的所有数据框绘制相同的图,但我似乎找不到如何做到这一点。
也许我可以用这个循环在我的列表上做点什么:
for(i in 1:length(myfiles)){
myfiles[[i]]$df_num <- i
}
【问题讨论】:
-
这个问题有很多很多的解决方案,请展示一些研究和代码工作。
-
我加了很多东西^^。
-
将数据帧列表转换为单个
big_df2数据帧时,为每个数据帧添加 id(例如,从 data.table 包中读取 rbindlist)然后在 ggplot 中使用 facet。 -
你能给我举个例子吗?