【问题标题】:How to store Wine descriptor data如何存储 Wine 描述符数据
【发布时间】:2021-02-08 03:32:17
【问题描述】:

假设我有一个非常大的数据集,其中包含品酒的结果,品酒描述符存储在其中一个变量中。

data.frame(c("red","white","rose"),c("grapefruit, raspberry", "sweet, bold", "tannins, long finish"))

可能的描述符数量巨大。我想以一种可用于机器学习技术分析的方式解压它们。我应该将每个可能的描述符放在自己的变量中,还是有更有效和更紧凑的方式来存储此类数据?

提前谢谢你!

【问题讨论】:

    标签: r dataframe bigdata data-manipulation data-wrangling


    【解决方案1】:

    试试这个方法。您有两个变量,但其中一个以逗号分隔。您可以重塑数据并为每个特征构建一个变量。此外,它还取决于您要应用哪类 ML 算法(可能是无监督学习)。代码如下:

    library(tidyverse)
    #Code
    dfnew <- df %>% setNames(.,c('v1','v2')) %>%
      mutate(id=row_number()) %>%
      pivot_longer(-id) %>%
      separate_rows(value,sep=',') %>%
      mutate(value=trimws(value)) %>% select(-name) %>%
      group_by(id) %>% mutate(Var=paste0('V',row_number())) %>%
      pivot_wider(names_from = Var,values_from=value) %>%
      ungroup() %>%select(-id)
    

    输出:

    # A tibble: 3 x 3
      V1    V2         V3         
      <chr> <chr>      <chr>      
    1 red   grapefruit raspberry  
    2 white sweet      bold       
    3 rose  tannins    long finish
    

    使用的一些数据:

    #Data
    df <- data.frame(c("red","white","rose"),c("grapefruit, raspberry", "sweet, bold", "tannins, long finish"))
    

    【讨论】:

      【解决方案2】:

      我们可以使用base R 轻松做到这一点(不需要任何包)。只需重命名数据集的列(因为data.frame 构造没有任何名称,它也只是将第一行作为列名),然后使用read.csv 读取第二列,它会自动使用分隔符为, 以分隔到不同的列

      names(df) <- paste0('v', seq_along(df))
      df[c('v2', 'v3')] <- read.csv(text = df$v2, header = FALSE)
      

      -输出

      df
      #     v1         v2           v3
      #1   red grapefruit    raspberry
      #2 white      sweet         bold
      #3  rose    tannins  long finish
      

      数据

      df <- structure(list(c..red....white....rose.. = c("red", "white", 
      "rose"), c..grapefruit..raspberry....sweet..bold....tannins..long.finish.. = c("grapefruit, raspberry", 
      "sweet, bold", "tannins, long finish")),
      class = "data.frame", row.names = c(NA, 
      -3L))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-16
        • 1970-01-01
        • 1970-01-01
        • 2013-11-19
        • 2011-02-18
        • 1970-01-01
        • 2016-02-26
        • 1970-01-01
        相关资源
        最近更新 更多