Ho una tabella dati e sto cercando di creare una nuova variabile che è una funzione di tutte le altre colonne. Un esempio semplificato sarebbe se volessi semplicemente sommare o prendere una media su tutte le righe. Per esempio:Utilizzare by = ogni riga per la tabella dati
dt <- data.table(a = 1:9, b = seq(10,90,10), c = seq(11:19), d = seq(100, 900, 100))
Voglio creare un vettore/colonna che è semplicemente la media di tutte le colonne. La sintassi che ci penso sarebbe simile a questa:
dt[, average := mean(.SD)]
Tuttavia, questo riassume il tutto. So che posso anche fare:
dt[, average := lapply(.SD, mean)]
Ma questo dà un risultato a riga singola. Sto cercando essenzialmente per l'equivalente di:
dt[, average := lapply(.SD, mean), by = all]
tale che calcola semplicemente questo per tutte le righe, senza dover creare una colonna "id" e facendo tutto il mio calcolo per quella colonna. È possibile?
Penso che il solito modo potrebbe essere 'dt [, m: = Riduci (\' + \ ', .SD)/lunghezza (.SD)]'. Se stai facendo operazioni a row, però, forse dovresti usare una matrice. – Frank