这个问题涉及R,但本质上并不是语言特定的。我有一堆这种通用格式的csv文件“sitename_03082015.csv”。该文件有5列和各行正则表达式和文件处理
Host MaximumIn MaximumOut AverageIn AverageOut
device1 30.63 Kbps 0 bps 24.60 Kbps 0 bps
device2 1.13 Mbps 24.89 Kbps 21.76 Kbps 461 bps
device5 698.44 Kbps 37.71 Kbps 17.49 Kbps 3.37 Kbps
我最终要在所有文件的读取和合并,我可以做的,但在合并过程中我想读的站点名称和日期,并把它添加到每个相关的行因此输出看起来像这样
Host MaximumIn MaximumOut AverageIn AverageOut Site Name Date
device1 30.63 Kbps 0 bps 24.60 Kbps 0 bps SiteA 3/7/15
device12 1.13 Mbps 24.89 Kbps 21.76 Kbps 461 bps SiteA 3/8/15
device1 698.44 Kbps 37.71 Kbps 17.49 Kbps 3.37 Kbps SiteB 3/7/15
device2 39.08 Kbps 1.14 Mbps 10.88 Kbps 27.06 Kbps SiteB 3/8/15
device3 123.43 Kbps 176.86 Kbps 8.62 Kbps 3.78 Kbps SiteB 3/9/15
随着我的R代码里面,我可以做到以下几点:
#Get list of file names
filenames<- list.files(pattern = ".csv$")
#This extracts everything up to the underscore to get site name
siteName <- str_extract(string = filenames, "[^_]*")
# Extract date from file names use
date <- str_extract(string = filenames, "\\d{8}")
随着下面R代码里面我可以合并所有的文件,但是,这将是没有增加我想要的网站名称和日期列。
myDF<-do.call("rbind", lapply(filenames, read.table, header=TRUE, sep=","))
我只是不能让我围绕着如何做网站和日期添加和填充列创建我的理想数据框也就是上面第二个表中提取头。
我最努力的溶液下面贴:)
有趣我会玩这个有很多在一行感谢答复。 – JohnP 2015-03-08 18:55:09
我试着运行你给我的示例代码,它只是挂起,但它肯定是在他的正确轨道 – JohnP 2015-03-08 19:38:20
感谢您的帮助我得到它的工作你的代码是正确的,只需要在最后添加一个父母。 – JohnP 2015-03-08 21:19:46