Как использовать dcast () для преобразования таблицы data.table 5x2 в data.tabe 1x5? - PullRequest
0 голосов
/ 19 июня 2020

У меня есть следующая таблица data.table

DT

ABBREVIATION    FULL_TEXT
-----------------------------
    DCD         TEXT1
    PCK         TEXT2
    KLM         TEXT3
    NOP         TEXT4
    XYZ         TEXT5

Я хотел бы преобразовать data.table так, чтобы каждое «ABBREVIATION» было собственным именем столбца. И есть одна строка с подробным описанием «FULL_TEXT», поэтому

DCD     PCK     KLM     NOP     XYZ
------------------------------------
TEXT1   TEXT2   TEXT3   TEXT4   TEXT5

Я пробовал использовать

dcast(DT, FULL_TEXT ~ ABBREVIATION, value.var = "FULL_TEXT")

, но это не сработало. Спасибо

1 Ответ

2 голосов
/ 19 июня 2020
dcast(df, 1 ~ ABBREVIATION, value.var = 'FULL_TEXT')[, -1, with = FALSE]
#      DCD   KLM   NOP   PCK   XYZ
# 1: TEXT1 TEXT3 TEXT4 TEXT2 TEXT5

Вместо этого вы должны использовать транспонирование

data.table::transpose(df, make.names = 'ABBREVIATION')
#      DCD   PCK   KLM   NOP   XYZ
# 1: TEXT1 TEXT2 TEXT3 TEXT4 TEXT5

Используемые данные

df <- fread('
ABBREVIATION    FULL_TEXT
    DCD         TEXT1
    PCK         TEXT2
    KLM         TEXT3
    NOP         TEXT4
    XYZ         TEXT5
')
...