首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从文件名中提取日期并将其添加到data.frame

从文件名中提取日期并将其添加到data.frame
EN

Stack Overflow用户
提问于 2014-10-24 16:49:54
回答 1查看 130关注 0票数 1

我将12个不同的txt文件组合成一个dataframe,如下所示:

每个文件包含不同数量的数据,文件名使用日期命名,例如"Student-Score-2010-10.txt“

每个文件代表一个月。

如何将日期添加回每一行?

代码语言:javascript
运行
复制
   id  dep  score
id511   10     34
id512   10     32
id512   10     34

我需要将日期添加回每一行

代码语言:javascript
运行
复制
   id  dep  score      date
id511   10     34   2010-10
id511   10     34   2010-10
id511   10     34   2010-10
id511   10     34   2010-11
id511   10     34   2010-11
id511   10     34   2010-12
id511   10     34    2011-1

日期是我编的。它不是真实的数据

原始数据

月报“

“XXXXX大学”

“+-+”

| id | dep |分数

“+-+

| id593 |2| 233

EN

回答 1

Stack Overflow用户

发布于 2014-10-24 17:58:20

您可以尝试:

代码语言:javascript
运行
复制
 files <- list.files(pattern="^Student")
  files
 #[1] "Student-Score-2010-10.txt" "Student-Score-2010-11.txt"

 dat<- do.call(rbind,lapply(files, function(x) {
           al <- readLines(x)
           al2 <- grep("id[0-9]", al, value=TRUE)
           al3 <- gsub("^ +| +$", "", gsub("[[:punct:]]+", "", al2))
           al4 <-read.table(text=al3, header=FALSE, sep="", stringsAsFactors=FALSE)
           colnames(al4) <- c("id", "dep", "scores")
           transform(al4, date=gsub("[[:alpha:]]+\\-[[:alpha:]]+\\-(.*)\\.txt",
                                          "\\1",x))}))

  dat
  #   id dep scores    date
  #1 id592   2    235 2010-10
  #2 id593   2    233 2010-11
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26544506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档