Przeglądałem samouczki i dokumentację, ale nie miałem pojęcia, jak przypisać wektor wartości dla wszystkich kolumn do jednego istniejącego wiersza w data.table
.Przypisanie wektora do określonego istniejącego wiersza tabeli danych w R
zacznę z pustym data.table
który ma już odpowiednią liczbę kolumn i wierszy:
dt <- data.table(matrix(nrow=10, ncol=5))
Teraz obliczyć pewne wartości dla jednego rzędu poza data.table
i umieścić je w wektorze vec
, e. g .:
vec <- rnorm(5)
Jak mogę przypisać wartości vec do e. sol. pierwszy wiersz data.table
przy zachowaniu dobrej wydajności (ponieważ chcę też wypełnić pozostałe rzędy krok po kroku)?
Ponieważ używasz 'data.table' dla celów wydajności (jak stwierdzono w komentarzu do jednej odpowiedzi poniżej) myślę, że dodawanie (wielu) wierszy raz za razem jest ** nie ** w ogóle skuteczne, ponieważ' data.table' (jak 'data.frame') jest sklep kolumna, a nie sklep rząd (czyli po dodaniu wiersza muszą być dostępne różne lokalizacje w pamięci). Jaki jest powód (algorytm), który wymaga dodania wierszy? –
Tworzę bardzo duży pusty stół (11 tysięcy wierszy x 8 tys kolumny), a ja wtedy robi niektóre obliczenia stworzyć wektor że następnie użyć, aby wypełnić tę tabelę w wiersz po wierszu. Myślałem, że użycie data.table może uczynić to szybszym, niż gdybym użył macierzy lub ramki danych. – Pascal
OK, myślę, że 'data.table' jest szybsza używając go w ten sposób od czasu przydzielenia wymaganej pamięci (Tabela rozmiarów) i zastąpić wiersze przez odniesienie (jeśli używasz odpowiedź Richard z' ': = operator), gdyż to rozwiązanie NIE kopiuje całości danych tylko dlatego, że modyfikujesz jedną wartość. Czy mogę edytować pytanie, aby wyjaśnić dokładny przypadek użycia? –