我将12个不同的txt文件组合成一个dataframe,如下所示:
每个文件包含不同数量的数据,文件名使用日期命名,例如"Student-Score-2010-10.txt“
每个文件代表一个月。
如何将日期添加回每一行?
id dep score
id511 10 34
id512 10 32
id512 10 34
我需要将日期添加回每一行
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
发布于 2014-10-24 17:58:20
您可以尝试:
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
https://stackoverflow.com/questions/26544506
复制相似问题