Матрица с именем столбца в R - PullRequest
0 голосов
/ 06 марта 2012

Я нашел много потоков, связанных с матричным стеком с именем столбца, но нет информации, которая помогла бы решить эту проблему.У меня есть такая матрица

   Lcover   
County        8         9   
  53009 868.935 1171.0050  
  53055      NA  414.9733  
  53057      NA  276.5450   
  53073 706.700        NA 

, и я пытаюсь создать такой фрейм данных

County Lcover Value  
53009   8     868.935  
53009   9    1171.0050   
53055   9     414.9733  
53057   9     276.5450  
53073   8     706.700

Кто-нибудь мне подскажет, как мне это сделать??

Заранее спасибо.

Девен

1 Ответ

0 голосов
/ 06 марта 2012

Как заметил Андри, функция 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().

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