dla obiektu data.table
Chciałbym zwinąć wartości niektórych pogrupowanych kolumn w jeden obiekt i wstawić wynikowe obiekty do nowej kolumny.Zwiń kolumny data.table podczas grupowania
dt <- data.table(
c('A|A', 'B|A', 'A|A', 'B|A', 'A|B'),
c(0, 0, 1, 1, 0),
c(22.7, 1.2, 0.3, 0.4, 0.0)
)
setnames(dt, names(dt), c('GROUPING', 'NAME', 'VALUE'))
dt
# GROUPING NAME VALUE
# 1: A|A 0 22.7
# 2: B|A 0 1.2
# 3: A|A 1 0.3
# 4: B|A 1 0.4
# 5: A|B 0 0.0
myślę, że w tym celu należy najpierw określić kolumnę, dla którego chcesz do grupy, więc powinienem zacząć z czymś dt[, OBJECTS := <expr>, by = GROUPING]
.
Niestety, nie wiem ekspresję <expr>
używać tak, że wynik jest następujący:
# GROUPING OBJECTS
# 1: A|A <vector>
# 2: B|A <vector>
# 3: A|B <vector>
Każdy <vector>
musi zawierać wartości innych kolumn. Przykład pierwszy <vector>
musi być nazwany wektor równoważne:
eg <- c(22.7, 0.3)
names(eg) <- c('0', '1')
# 0 1
# 22.7 0.3
Czy próbujesz przekształcić swoją tabelę danych na format panoramiczny? – mnel
twoje 'wyrażenie' powinno wyglądać jak' lista (lista (...)) ' –
Ale dlaczego? Nie uważasz, że trudno jest z tym pracować? Dlaczego nie przekształcić go i mieć kolumny z wartościami odpowiadającymi '0' i' 1'? – Arun