Mam ramkę danych, w której jedna konkretna kolumna ma zestaw określonych wartości (powiedzmy 1, 2, ..., 23). Chciałbym przekonwertować z tego układu na ten, w którym ramka miałaby dodatkowe 23 (w tym przypadku) kolumny, z których każda reprezentuje jedną z wartości współczynnika. Dane w tych kolumnach byłyby wartości logiczne wskazujące, czy dany wiersz miał daną wartość współczynnika ... Aby wyświetlić konkretny przykład: RamaPrzekształć ramkę danych, aby przekonwertować współczynniki na kolumny w R
Źródło:
ID DATE SECTOR
123 2008-01-01 1
456 2008-01-01 3
789 2008-01-02 5
... <more records with SECTOR values from 1 to 5>
żądany format:
ID DATE SECTOR.1 SECTOR.2 SECTOR.3 SECTOR.4 SECTOR.5
123 2008-01-01 T F F F F
456 2008-01-01 F F T F F
789 2008-01-02 F F F F T
Nie mam problemu z robieniem tego w pętli, ale miałem nadzieję, że będzie lepszy sposób. Do tej pory reshape()
nie przyniosło pożądanego rezultatu. Pomoc będzie bardzo mile widziane.
Dziękuję. Powinienem był pomyśleć o stworzeniu kolumny wartości. Co ciekawe, podejście kolumna wartości/zmiana kształtu zajmuje 1,4 sekundy na 9,500 wierszy z 26 poziomami czynnika, podczas gdy użycie podejścia iteracyjnego (ponad poziomami) zajmuje tylko 0,6 sekundy. –
Nie daj się zwieść tym funkcjom: funkcja 'reshape' sama wykonuje iterację, jeśli na nią spojrzysz. Ale poza tym ma jeszcze wiele innych zalet, które zwiększą ogólny czas. Rzeczy takie jak "przekształcić" nie mają na celu lepszej wydajności; są tam tylko po to, aby ułatwić manipulację danymi. – Shane