如何解决如何存储Wine描述符数据 数据
比方说,我有一个非常庞大的数据集,其中包含来自品酒的结果,品酒描述符存储在其中一个变量中。
data.frame(c("red","white","rose"),c("grapefruit,raspberry","sweet,bold","tannins,long finish"))
可能的描述符数量很多。我想以某种方式打开它们的包装,使其可用于机器学习技术的分析。我应该将每个可能的描述符放在其自己的变量中,还是有一种更有效,更紧凑的方式来存储此类数据?
提前谢谢!
解决方法
尝试这种方法。您有两个变量,但其中一个用逗号分隔。您可以重塑数据并为每个功能构建一个变量。此外,这还取决于您要应用哪一类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"))
,
我们可以使用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",c..grapefruit..raspberry....sweet..bold....tannins..long.finish.. = c("grapefruit,long finish")),class = "data.frame",row.names = c(NA,-3L))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。