Как заметил Андри, функция melt()
упрощает эту задачу:
x <- read.table(text = "County 8 9
53009 868.935 1171.0050
53055 NA 414.9733
53057 NA 276.5450
53073 706.700 NA ", header = TRUE)
require(reshape2)
melt(x, id.vars = "County", na.rm=TRUE)
County variable value
1 53009 X8 868.9350
4 53073 X8 706.7000
5 53009 X9 1171.0050
6 53055 X9 414.9733
7 53057 X9 276.5450
"X" появляется перед вашими столбцами, потому что R пытается создать правильные имена столбцов с помощью функции make.names()
. Вы можете отключить эту функцию с помощью check.names = FALSE
при чтении / создании таблицы. Или просто отбросьте X из полученного столбца с помощью gsub("X","", variable)
. Если вы хотите сохранить значения NA в расплавленном файле data.frame, измените na.rm = FALSE
в функции melt()
.