Łą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 № 1Moż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