Ich versuche derzeit, ggplot2 zu verwenden, um Ergebnisse von einfachen Strom-Spannungsexperimenten zu visualisieren. Ich habe natürlich gute Ergebnisse für eine Datenmenge erzielt.Organisieren von Daten aus Physikexperimenten für ggplot2
Allerdings habe ich eine Reihe von Strom-Spannungs-Datensätzen, die ich Eingang in R rekursiv die folgende Organisation zu erhalten (minimal Code):
data.frame(cbind(batch(string list), sample(string list), dataset(data.frame list)))
Edit: Meine Daten werden in Textdateien Namen gespeichert batchname_sampelnummer.txt, mit Spannungs- und Stromspalten. Der Code, den ich zu importieren verwenden, um sie ist:
require(plyr)
require(ggplot2)
#VARIABLES
regex <- "([[:alnum:]_]+).([[:alpha:]]+)"
regex2 <- "G5_([[:alnum:]]+)_([[:alnum:]]+).([[:alpha:]]+)"
#FUNCTIONS
getJ <- function(list, k) llply(list, function(i) llply(i, function(i, indix) getElement(i,indix), indix = k))
#FILES
files <- list.files("Data/",full.names= T)
#NAMES FOR FILES
paths <- llply(llply(files, basename),function(i) regmatches(i,regexec(regex,i)))
paths2 <- llply(llply(files, basename),function(i) regmatches(i,regexec(regex2,i)))
names <- llply(llply(getJ(paths, 2)),unlist)
batches <- llply(llply(getJ(paths2, 2)),unlist)
samples <- llply(llply(getJ(paths2, 3)),unlist)
#SETS OF DATA, NAMED
sets <- llply(files,function(i) read.table(i,skip = 0, header = F))
names(sets) <- names
for (i in as.list(names)) names(sets[[i]]) <- c("voltage","current")
df<-data.frame(cbind(batches,samples,sets))
und ein minimalen Daten können über generiert werden:
require(plyr)
batch <- list("A","A","B","B")
sample <- list(1,2,1,2)
set <- list(data.frame(voltage = runif(10), current = runif(10)),data.frame(voltage = runif(10), current = runif(10)),data.frame(voltage = runif(10), current = runif(10)),data.frame(voltage = runif(10), current = runif(10)))
df<-data.frame(cbind(batch,sample,set))
Meine Frage ist: ist es möglich, die Daten zu verwenden, wie einen Code zum Plotten mit ähnlich wie folgt (was nicht funktioniert)?
ggplot(data, aes(x = dataset$current, y = dataset$voltage, colour = sample)) + facet_wrap(~batch)
Die allgemeinere Version wäre: ist ggplot2 Lage rohe physikalische Daten von handeling, statistischen Daten diskreten, im Gegensatz (wie Diamanten, Autos)?
Ihre Beschreibung von „Daten in R rekursiv inputing“ ist sehr unklar. Außerdem ist nicht klar, was die Unterscheidung zwischen "statistischen Daten" und "physikalischen Rohdaten" sein könnte. Daten sind Daten. Es liegt an Ihnen, sich richtig zu organisieren. Sie sollten vielleicht ein konkretes, reproduzierbares Beispiel geben, das den Richtlinien [hier] folgt (http://stackoverflow.com/q/5963269/324364). – joran
Sie möchten Ihre Liste wahrscheinlich in ein dat.frame-Format konvertieren. Dies können Sie möglicherweise mit data.frame tun (batch = your.list [1], sample = your.list [2], your.list [3]). Ein paar Wege: do (your.list, rbind), umgestalten, ... –
Danke für Ihre Kommentare, ich bin mir sicher, es ist nur eine Frage des Umschlingens um Schmelze und ggplot2. Allerdings habe ich mir jedes ggplot2 Diamanten und Autos Beispiele angeschaut und nichts gefunden mit verknüpften Variablen (wie ein Wert von Strom geht mit einem Wert von Spannung). Daher meine Frage. Ich fügte weitere Details hinzu, im Anschluss an Joran Kommentar. Danke noch einmal. –