Stellen Sie sich zwei Distributionen haben sich aus zwei einer gespeicherten Simulationen in data.frame
:Ordnen durch Bezugnahme eine Liste der Ergebnisse auf eine Anzahl von Spalten einer data.table
sim1 = 1:10
sim2 = 91:100
sim = data.frame(sim1, sim2)
Jetzt wollen wir die 10% finden und 90% Perzentile jeder Verteilung.
diffSim = ncol(sim)
confidenceInterval = c(0.1, 0.9)
results = lapply(1:diffSim, function(j) {quantile(sim[, j], confidenceInterval,
names = FALSE, type = 3)})
ich diese Ergebnisse in einem data.table
speichern möchte, indem durch Verweis zuweisen (:=
): Dies kann durch geschehen. Allerdings muss ich zuerst results
in der entsprechenden Form (d. H. Eine Datentabelle von 1 Zeile und 4 Spalten) erhalten. Um dies zu tun, ich gelte anschließend unlist
, matrix
und as.data.table
zu results
:
DT = data.table(Col1 = "Result")
DT[, c("col2", "col3", "col4", "col5") := as.data.table(matrix(unlist(results), nrow = 1))]
Ich mag das nicht. Gibt es einen kürzeren Weg dazu?
warum "1 Zeile 4 Spalten"? – MichaelChirico
@MichaelChirico, weil 'DT' auch aus anderen Zeilen besteht – koteletje