Mam data.frame
z 130.219 wierszy.Jak podzielić ramkę danych według wierszy na porcje n, zastosować funkcję i połączyć?
> head(dt)
mLow1 mHigh1 mLow2 mHigh2 meanLow meanHigh fc mean
A_00001 37.00 12.75 99.25 78.50 68.125 45.625 1.4931507 56.8750
A_00002 31.00 21.50 84.75 53.00 57.875 37.250 1.5536913 47.5625
A_00003 72.50 26.50 81.75 74.75 77.125 50.625 1.5234568 63.8750
Chcę podzielić data.frame
w 12, stosuje się funkcję scale
na kolumnie fc
a następnie połączyć je. Nie ma tu żadnej zmiennej grupującej, inaczej użyłbym ddply
. Ponadto, ponieważ 130,209 nie jest doskonale podzielne przez 12, wynikowy data.frames
będzie niezrównoważony, tj. 11 data.frame
s będzie miał 10,851 wierszy, a ostatni będzie miał 10 848 wierszy, ale to jest w porządku.
Jak podzielić data.frame
przez rząd na kawałki n (w tym przypadku 12), zastosować funkcję, a następnie połączyć je razem? Każda pomoc będzie doceniona.
Aktualizacja: Korzystanie dwa pierwsze rozwiązania, mam różne wyniki: Stosując rozwiązanie @Ben Bolker, w
mLow1 mHigh1 mLow2 mHigh2 UID gene_id meanLow meanHigh mean fc
1.5 3.25 1 1.25 MGLibB_00021 0610010K14Rik 1.25 2.25 1.75 -0.5231249
1.5 3.25 1 1.25 MGLibA_00034 0610037L13Rik 1.25 2.25 1.75 -0.5231249
1.5 3.25 1 1.25 MGLibB_00058 1100001G20Rik 1.25 2.25 1.75 -0.5231249
1.5 3.25 1 1.25 MGLibA_00061 1110001A16Rik 1.25 2.25 1.75 -0.5231249
1.5 3.25 1 1.25 MGLibA_00104 1110034G24Rik 1.25 2.25 1.75 -0.5231249
1.5 3.25 1 1.25 MGLibA_00110 1110038F14Rik 1.25 2.25 1.75 -0.5231249
Korzystanie @ MichaelChirico za odpowiedź:
mLow1 mHigh1 mLow2 mHigh2 UID gene_id meanLow meanHigh mean fc fc_scaled
1.5 3.25 1 1.25 MGLibB_00021 0610010K14Rik 1.25 2.25 1.75 0.5555556 -0.5089608
1.5 3.25 1 1.25 MGLibA_00034 0610037L13Rik 1.25 2.25 1.75 0.5555556 -0.5089608
1.5 3.25 1 1.25 MGLibB_00058 1100001G20Rik 1.25 2.25 1.75 0.5555556 -0.5089608
1.5 3.25 1 1.25 MGLibA_00061 1110001A16Rik 1.25 2.25 1.75 0.5555556 -0.5089608
1.5 3.25 1 1.25 MGLibA_00104 1110034G24Rik 1.25 2.25 1.75 0.5555556 -0.5089608
1.5 3.25 1 1.25 MGLibA_00110 1110038F14Rik 1.25 2.25 1.75 0.5555556 -0.5089608
ta liczba wierszy nie jest duża. Dlaczego chcesz używać skali oddzielnie i łączyć wyniki zamiast bezpośrednio skalować kolumnę Fc? –
Chcę kontrolować fc (fałd zmiana) dla średniej obfitości (średnia). Dane są posortowane według średniej w mojej faktycznej ramce danych. Chcę obliczyć Zscore oddzielnie dla oddzielnych porcji średniej obfitości (naprawdę niska, niska ... med ... wysoka ... do bardzo wysokiej) –
Dlaczego nie użyć 'cut (1: nrow (dt), 12)' with rozdzielać? –