2
Я хотел бы распространять данные по нескольким столбцам, используя tidyr
.Распространение нескольких столбцов [tidyr]
dat <- data.frame(ID = rep(1,10),
col1 = LETTERS[seq(1,10)],
col2 = c(letters[seq(1,8)],NA,NA),
col3 = c(rep(NA,8),"5",NA),
col4 = c(rep(NA,8),NA,"value"))
Ожидаемый результат:
Out <- data.frame(t(c(1,letters[seq(1,8)],"5","value")),row.names=NULL)
colnames(Out) <- c("ID",LETTERS[seq(1,10)])
я придумал:
a <- dat %>% gather(variable, value, -(ID:col1)) %>%
unite(temp, col1, variable) %>%
spread(temp, value)
a[,-which(is.na(a))]
который является неуклюжим, а также изменяет имена столбцов. Есть ли лучшее решение для этого?
Великий объяснение и решение, большое спасибо! – count