Добавление значений из широкого фрейма данных в длинный фрейм данных - PullRequest
0 голосов
/ 25 июня 2019

У меня есть несколько фреймов данных либо широкоформатного, либо длинного формата, и я пытаюсь настроить общий фрагмент кода (цикл или другой), который позволит мне взять значения из широкого df и вставить их вдлинный df.

См. прикрепленные скриншоты двух фреймов данных.

long DF image wide DF image

Я хотел бы получить дату сканирования для каждого сканирования в широком DF в новую переменную в длинном DF.Кажется простым, но я застрял - спасибо за любую помощь!

1 Ответ

0 голосов
/ 25 июня 2019
library(tidyr)
library(stringr)
datalong <- gather(datawide, -PID)
datalong$ScanType <- ifelse(str_detect(as.character(datalong$key), "date"), "scan_date","scan_name")
datalong <- spread(datalong, ScanType, value)
#Merge with other long dataframe
NewLong <- merge(oldLong, datalong, by = c("PID","scan_name")

Я верю, что это сработает, но я не уверен, потому что нет воспроизводимого примера. В итоге вы получите дополнительный столбец, который, скорее всего, будет называться «ключом» и который будет gather(datawide, -PID). Если вам не нужен этот дополнительный бит метаданных, вы можете выделить этот столбец из длины данных перед выполнением строки spread(data, ScaneType, value).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...