sagen, dass ich N identisch (gleiche Anzahl von Zeilen und Spalten) Datenrahmen haben:Funktion jeder Zelle über mehrere Datenrahmen in R
set.seed(2)
df1 <- data.frame(replicate(100,rnorm(100)))
df2 <- data.frame(replicate(100,rnorm(100)))
dfN <- data.frame(replicate(100,rnorm(100)))
Und ich möchte eine Funktion anzuwenden (in diesem Fall t.test()
) über jeder "Zelle" von N Datenrahmen, so dass, was zurückkommt, ist ein separater Datenrahmen, der einen Wert für jeden durchgeführten Zellentest enthält. Im Wesentlichen will, muss ich die erste Zelle eines jeden Datenrahmen nehmen,
one <- df1[1,1]
two <- df2[1,1]
Nth <- dfN[1,1]
eine t.test()
auf diesen Zellen durchführen,
first.cell.each <- cbind.data.frame(one,two,Nth)
t.test(first.cell.each, mu=0)
Und wiederholen, dass in allen Zellen (in diesem Fall 10000).
edit: geklärte
@ZheyuanLi, meine Entschuldigung, Ich hätte klarer sein sollen. Identisch in Bezug auf die Anzahl der Zeilen und Spalten. – DrPineapple
Sie verwenden die falsche Datenstruktur. Kombinieren Sie die data.frames zu einem Array und verwenden Sie apply. – Roland
Sie können jetzt das neue 'tidyr'-Paket verwenden, um mehrere Datenrahmen zu kombinieren und ihre Daten zu verschieben. Siehe https://blog.rstudio.org/2014/07/22/introducing-tidyr/ – smci