Ich habe mehrere Xlsx-Dateien in einem Verzeichnis mit der gleichen Struktur (d. H. Spalte A, B, C); Jede Datei ist die Daten eines Tages. Ich muss alle Daten in R importieren und die Unterschiede zwischen einem Tag und dem nächsten finden.Importieren Sie mehrere Xlsx-Datei in R
files <- list.files(pattern = ".xlsx")
for (i in seq_along(files)) {
assign(paste("Day", i, sep = "."), read.xlsx(files[i]))
}
Ich kann nicht herausfinden, wie man die importierten Daten verwendet. Zum Beispiel
Day.1 <- data.frame(Day.1)
Day.1$A <- as.character(Day.1$A)
Day.2 <- data.frame(Day.2)
Day.2$A <- as.character(Day.2$A)
anti_join (Day.1, Day.2)
Dieser Code funktioniert gut, aber wie sollte es mit einer variabel sein?
Day.[i] <- data.frame(Day.[i])
Day.[i]$A <- as.character(Day.[i]$A)
Day.[i+1] <- data.frame(Day.[i+1])
Day.[i+1]$A <- as.character(Day.[i+1]$A)
anti_join (Day.[i], Day.[i+1])
Ich habe versucht, alle Dateien in einem einzigen Datenrahmen zu importieren, aber ich habe ein ähnliches Problem, wie die neuen Daten verwenden
file.list <- list.files(pattern='*.xlsx')
days.list <- lapply(file.list, read_excel)
days <- rbindlist(days.list, idcol = "id")
days <- data.frame(days)
days$B <- as.character(days$B)
Aber ich weiß nicht, wie man so etwas wie:
day1 <- filter(days, id==1)
day2 <- filter(days, id==2)
diff1 <- anti_join (day1, day2, by=c("B", "C"))
eine Zählvariable mit (i)
day(i) <- filter(days, id==(i))
day(i+1) <- filter(days, id==(i+1))
diff1 <- anti_join (day1, day2, by=c("B", "C"))
Es gibt zahlreiche Beispiele auf SO dies richtig zu machen (und nicht behandeln R wie Python mit 'for' Schleifen). Sie sollten darüber nachdenken, wie Sie vektorisierte Funktionen verwenden können, um einen großen Datenrahmen zu erstellen, und dann einfach zwischen Tagen gruppieren und Diffs erstellen. – hrbrmstr
Bitte alle 'library' Zeilen einbeziehen. Einige Methoden sind hier nicht Basis R. – Parfait
Bibliothek (data.table) und Bibliothek (openxlsx) – Kalel