Dies ist, was mein Datenrahmen wieVerketten und Einfügen zwei Spalten mit Zeilenumbrüchen innerhalb von Datenrahmen/data.table
library(data.table)
dt <- fread('
Batch Score Type Description
A 1 fruit apple
A 2 beverage pepsi
A 3 food rice
B 1 beverage coke
B 2 fruit banana
C 1 food butter
D 1 food bread
')
sieht Sobald ich die Zeile, in der eine bestimmte Charge hat die höchste Punktzahl zu identifizieren, mag ich verketten Sie Type
und Description
und fügen Sie sie den ganzen Weg (alle Elemente von der ersten Zeile bis zur letzten Zeile mit dem höchsten Score) mit Zeilenumbrüche und Lücke zwischen Typ und Beschreibung. Das Einfügen wird bis zu der Zeile mit der höchsten Punktzahl für diese Charge getan, so dass es wie folgt aussieht:
Batch Score(Max) Description2
A 3 fruit apple
beverage pepsi
food rice
B 2 beverage coke
fruit banana
C 1 food butter
D 1 food bread
Die Zeile mit der höchsten Punktzahl für die Charge auch in die letzte Reihe für diesen Charge sein geschieht meine Datenrahmen. Ich habe versucht:
dt[, .(MaxScore = max(Score),
Description2 = cat(paste(Type, Description), sep="\n")),by = .(Batch)]
Das Ziel all diese Informationen in einer Spalte (Description2) und eine Zeile für jede batch.Your Hilfe wird sehr geschätzt zu zeigen!
Vielen Dank für Ihre Antwort Frank. Der Grund, warum ich versuche, all diese Informationen in eine Spalte zu stopfen (Description2), ist, dass ich versuche, dieses Feld nach Salesforce zu exportieren. Salesforce-Reporting ist ziemlich schlecht und es spielt nicht gut mit Daten, die außerhalb seiner Sphäre sind. Bei der Erstellung eines Feldes habe ich darüber nachgedacht, all diese Informationen in einem lesbaren Format anzuzeigen und es gleichzeitig möglich zu machen, es in Salesforce hochzuladen. – gibbz00
Hey Frank, wie zwinge ich deine Ausgabe zu einem Datenrahmen? Und wie kann ich die Max-Punktzahl aus der endgültigen Ausgabe herausnehmen, brauche ich diesen Teil nicht. – gibbz00
@gibbz Der "max score" -Teil wird in 'newrow' angezeigt, also schließe diesen Part vom finalen' rbind' aus. Verwende einfach as.data.frame, wenn du einen data.frame willst. Sie haben Zeilenumbrüche usw. erwähnt, die für mich so klingen, als ob Sie nach der Textausgabe wären, vielleicht mit fwf importieren. – Frank