ich folgende R data.table haben (obwohl ich glücklich bin mit einem Datenrahmen für diese kleine Datenmenge zu arbeiten)Wie eine einzelne Spalte mit R Datenrahmen/data.table entfalten,
library(data.table)
dt = readcsv(...)
head(dt)
column1 column2 column3 column4 column5 column6
1 5 456421 437141 1.044105 32935 893562
2 42 756152 714126 1.058850 45913 1470278
3 36 157817 150205 1.050677 14558 308022
4 20 181700 172716 1.052016 15077 354416
würde ich Sie können column2
und column3
in eine Spalte zusammenführen, indem Sie alle zugehörigen Zeilen beibehalten und ein binäres Label verwenden, um zu verfolgen, woher diese Werte ursprünglich stammen. Die data.table ich im Sinn haben, ist in folgendem Format:
column1 combined column4 column5 column6 from_column_2
1 5 456421 1.044105 32935 893562 TRUE
2 5 437141 1.044105 32935 893562 FALSE
3 42 756152 1.058850 45913 1470278 TRUE
4 42 714126 1.058850 45913 1470278 FALSE
5 36 157817 1.050677 14558 308022 TRUE
6 36 150205 1.050677 14558 308022 FALSE
....
ich sehr verwirrt bin, wie man würde mit data.table dies zu tun. Die meisten Operationen sind "tabellenweit". Was dplyr
oder tidyr
verwenden, bin ich nicht sicher, wie ich etwas bin Filterung ...
haben Sie versucht "? Schmelzen" dh 'schmelzen (dt, measure.vars = c (" column2 "," column3 "))' –
Die 'tidyr' Lösung wäre' df <- gather (df, key = source.column, value = combined, column2, column3) ' –
@docendodiscimus Das ist ausgezeichnet, danke! Gibt es eine Möglichkeit, diesen Code auszuführen, ohne 'Variable' und' Werte' nachträglich neu definieren zu müssen? – ShanZhengYang