/ / Wyodrębnianie dat z nazw plików i dodawanie ich do data.frame [duplikat] - r, data, ramka danych

Wyodrębnianie dat z nazw plików i dodawanie ich do data.frame [duplicate] - r, date, dataframe

Łączę 12 różnych plików txt w ramkę danych, która wygląda tak:

Każdy plik zawiera inną liczbę danych, a nazwa pliku to nazwa z datą, np. „Student-Score-2010-10.txt”.

Każdy plik reprezentuje jeden miesiąc.

Jak mogę dodać datę do każdego wiersza?

   id  dep  score
id511   10     34
id512   10     32
id512   10     34

Muszę dodać datę do każdego wiersza

   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

Wymyśliłem datę. To nie są prawdziwe dane

dane źródłowe

Miesięczny raport"

„Uniwersytet XXXXX”

„+ -------- + ------ + ----- +”

"| id | dep | wyniki |

„+ ------- + ----- + ------ +

„| id593 | 2 | 233 |

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz spróbować:

 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