【问题标题】:tidyr/data.table: gather/melt only values, discard keystidyr/data.table:仅收集/融化值,丢弃键
【发布时间】:2018-01-06 07:11:21
【问题描述】:

我想收集/融化一个没有键值最终输出的数据框。所有值都应以一列结尾。

library(tidyverse)
library(tidytext)

data <- get_sentiments("nrc")

我使用的数据如下所示: nrc_wide

# sample output:

         word anger anticipation disgust fear  joy negative positive 
1      abacus  <NA>         <NA>    <NA> <NA> <NA>     <NA>     <NA>    
2     abandon  <NA>         <NA>    <NA> fear <NA> negative     <NA> 
3   abandoned anger         <NA>    <NA> fear <NA> negative     <NA> 
4 abandonment anger         <NA>    <NA> fear <NA> negative     <NA> 

我想把它变成原来的样子:

     word sentiment
     <chr>     <chr>
1    abacus     trust
2   abandon      fear
3   abandon  negative
4   abandon   sadness

我尝试了很多收集和融化选项,但这不是键值格式。

【问题讨论】:

    标签: r data.table dplyr tidyr


    【解决方案1】:

    正常的tidyr::gather 操作应该可以,除非您需要 1) 使用na.rm = TRUE 删除 NA; 2)在重塑时排除word列,使其保持不变; 3) 在以下之后删除键列:

    library(tidyverse)
    nrc_wide %>% 
        gather(key, sentiment, -word, na.rm = T) %>% 
        select(-key) %>% 
        arrange(word) %>% 
        head
    
    #       word sentiment
    #1    abacus     trust
    #2   abandon      fear
    #3   abandon  negative
    #4   abandon   sadness
    #5 abandoned     anger
    #6 abandoned      fear
    

    使用data.table::melt

    library(data.table)
    melt(setDT(nrc_wide), id.vars = "word", na.rm = TRUE)[, 
        .(word, sentiment = value)
    ][order(word)]
    
    #            word    sentiment
    #    1:    abacus        trust
    #    2:   abandon         fear
    #    3:   abandon     negative
    #    4:   abandon      sadness
    #    5: abandoned        anger
    #   ---                       
    #13897:      zest anticipation
    #13898:      zest          joy
    #13899:      zest     positive
    #13900:      zest        trust
    #13901:       zip     negative
    

    【讨论】:

    • 漂亮!谢谢!
    猜你喜欢
    • 2014-12-19
    • 2018-05-08
    • 2019-07-15
    • 1970-01-01
    • 2022-01-08
    • 2011-12-14
    • 1970-01-01
    • 2021-10-22
    • 2016-06-26
    相关资源
    最近更新 更多