Как извлечь наблюдения из фрейма данных и создать таблицу с наблюдениями, именем столбца и именем строки? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь извлечь наблюдения из фрейма данных и создать новый фрейм данных, который показывает наблюдения в одном столбце, соответствующие столбцы в другом столбце и соответствующие строки в другом столбце.Затем исключите значения, в которых есть NA.В настоящее время df выглядит так:

Flask     Well 1      Well 2
  A            NA         NA
  B           2Mg       Control
  C           3Mg       Control
  D           4Mg       Control
  E            NA         NA

Я пытался использовать !is.na(), но это не устранит значения и не структурирует df в текущем состоянии.В настоящее время я организовал это с помощью chart_df %>% group_by(row.names(chart_df)), но не совсем правильно организовал его.

Я хотел бы иметь df, который выглядит следующим образом:

Condition   Column   Row
NA          Well1      A
2Mg         Well1      B
3Mg         Well1      C
4Mg         Well1      D

1 Ответ

0 голосов
/ 18 февраля 2019

Я думаю, что вы ищете melt

# the data
my_df <- read.table(text = "Flask     Well_1      Well_2
                     A            NA         NA
                     B           2Mg       Control
                     C           3Mg       Control
                     D           4Mg       Control
                     E            NA         NA", header = TRUE)

library(reshape2)
melt(my_df , id.vars = 'Flask') %>% 
  setNames(c('Row', 'Column', 'Condition')) %>% 
  na.omit()

обновление : когда id.vars (Flask столбец) является rownames

# the data
my_df <- my_df[c('Well_1',  'Well_2')] %>% 
  as.data.frame(row.names = my_df$Flask) 

my_df %>% 
  as.matrix() %>% melt() %>%  na.omit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...