gegeben ein data.table
Objekt Ich würde die Werte einiger gruppierter Spalten in ein einzelnes Objekt reduzieren und die resultierenden Objekte in eine neue Spalte einfügen.Collapse data.table Spaltenwerte während Gruppierung
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
denke ich, dass dies zu tun, zuerst notwendig ist, um die Spalte, für die Sie gruppieren möchten angeben, also sollte ich mit so etwas wie dt[, OBJECTS := <expr>, by = GROUPING]
starten.
Leider weiß ich nicht den Ausdruck <expr>
so zu verwenden, dass das Ergebnis wie folgt:
# GROUPING OBJECTS
# 1: A|A <vector>
# 2: B|A <vector>
# 3: A|B <vector>
Jeder <vector>
die Werte der anderen Spalten enthalten muss.
eg <- c(22.7, 0.3)
names(eg) <- c('0', '1')
# 0 1
# 22.7 0.3
Möchten Sie Ihre data.table in ein Wide Format umformen? – mnel
Ihr 'Ausdruck' sollte ungefähr so aussehen wie 'Liste (Liste (...))' –
Aber warum? Denkst du nicht, dass es schwierig ist, damit zu arbeiten? Warum nicht umformen und Spalten mit Werten haben, die "0" und "1" entsprechen? – Arun