【问题标题】:How to extract observations from a data frame and make a table showing observations, column name, and row name?如何从数据框中提取观察结果并制作显示观察结果、列名和行名的表格?
【发布时间】:2019-02-18 20:16:01
【问题描述】:

我正在尝试从数据框中提取观察结果并创建一个新数据框,该数据框在一列中显示观察结果,在另一列中显示相应列,在另一列中显示相应行。然后消除其中包含 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

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    我想你在找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.varsFlask 列)是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()
    

    【讨论】:

    • Flask 列实际上是 df 的行名,并没有注册为 id.vars
    • 作为一种解决方法,您可以在melt 之前使用as.matrix,请查看我的更新
    • 当然!如果您的问题得到解决,请接受答案。
    猜你喜欢
    • 2020-03-26
    • 2013-07-12
    • 2020-09-19
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 2019-03-16
    • 1970-01-01
    相关资源
    最近更新 更多