当前位置: 首页 > 知识库问答 >
问题:

使用R从数据集中拆分行在PowerBI上不起作用

翁和正
2023-03-14

我有一个具有以下格式的数据集:

#albaran|fecha|cliente|estado|descrip|destinatario|direccion|cp|poblacion|observaciones
#11111|43229|C1|E1|D1|DD1|DIR1|CP1|P1|COLECCIÓN CLÁSICOS DISNEY - Entrega Nº: 11, 12, 13, 14; Grandes Enigmas - Entrega Nº: 5, 6
#22222|43229|C2|E2|D2|DD2|DIR2|CP2|P2|COLECCIÓN CLÁSICOS DISNEY - Entrega Nº: 8, 9; Otro Pedido - Entrega Nº: 1, 2

我需要转换:

#albaran|fecha|cliente|estado|descrip|destinatario|direccion|cp|poblacion|pedido|entregas
#11111|43229|C1|E1|D1|DD1|DIR1|CP1|P1|COLECCIÓN CLÁSICOS DISNEY|11, 12, 13, 14
#11111|43229|C1|E1|D1|DD1|DIR1|CP1|P1|Grandes Enigmas|5, 6
#22222|43229|C2|E2|D2|DD2|DIR2|CP2|P2|COLECCIÓN CLÁSICOS DISNEY|8, 9
#22222|43229|C2|E2|D2|DD2|DIR2|CP2|P2|Otro Pedido|1, 2

我试着用

library(data.table)

hec1 <- as.data.table(dataset)
res <- hec1[,strsplit(observaciones, split = ";"),by = c("albaran", "fecha", "cliente", "estado", "descrip", "destinatario", "direccion", "cp", "poblacion")]
res[, pedido:= substring(observaciones, 1, regexpr(":", observaciones)-2)][, entregas := substring(observaciones, regexpr(":", observaciones)+2, nchar(observaciones))]
res$V1 <- NULL
res <- res[,strsplit(entregas, split = ","),by = c("albaran", "fecha", "cliente", "estado", "descrip", "destinatario", "direccion", "cp", "poblacion", "tipo_pedido")]
setnames(res, "pedido", "entregas")
res

附件包:“dplyr”

从“package:stats”屏蔽了以下对象:

滤波器,滞后

library(ggplot2)
library(tibble)
library(tidyr)
library(readr)
library(ggplot2)
library(stringr)
library(forcats)
library(dplyr)


df %>%
  separate_rows("observaciones", sep = ";") %>%
  separate(observaciones, c("pedido", "entregas"), " - Entrega Nº ")
library(ggplot2)
library(tibble)
library(tidyr)
library(readr)
library(ggplot2)
library(stringr)
library(forcats)
library(dplyr)
library(data.table)

df <- as.data.table(dataset)
df <- df %>%
  separate_rows("observaciones", sep = ";") %>%
  separate(observaciones, c("pedido", "entregas"), " - Entrega Nº:")
df <- df %>%
  separate_rows("entregas", sep = ", ") %>%
  separate(entregas, c("entregas"), ",")
df <- df %>%
  separate_rows("entregas", sep = "y") %>%
  separate(entregas, c("entregas"), ",")

共有1个答案

贺皓
2023-03-14

tidyverse方法可以是

library(tidyverse)

df %>%
  separate_rows("observaciones", sep = ";") %>%
  separate(observaciones, c("pedido", "entregas"), " - Entrega Nº ")

输出为:

  albaran fecha cliente estado descrip destinatario direccion  cp poblacion                    pedido
1   11111 43229      C1     E1      D1          DD1      DIR1 CP1        P1 COLECCIÓN CLÁSICOS DISNEY
2   11111 43229      C1     E1      D1          DD1      DIR1 CP1        P1           Grandes Enigmas
3   22222 43229      C2     E2      D2          DD2      DIR2 CP2        P2 COLECCIÓN CLÁSICOS DISNEY
4   22222 43229      C2     E2      D2          DD2      DIR2 CP2        P2               Otro Pedido
        entregas
1 11, 12, 13, 14
2           5, 6
3           8, 9
4           1, 2

示例数据

df <- structure(list(albaran = c(11111L, 22222L), fecha = c(43229L, 
43229L), cliente = c("C1", "C2"), estado = c("E1", "E2"), descrip = c("D1", 
"D2"), destinatario = c("DD1", "DD2"), direccion = c("DIR1", 
"DIR2"), cp = c("CP1", "CP2"), poblacion = c("P1", "P2"), observaciones = c("COLECCIÓN CLÁSICOS DISNEY - Entrega Nº 11, 12, 13, 14; Grandes Enigmas - Entrega Nº 5, 6", 
"COLECCIÓN CLÁSICOS DISNEY - Entrega Nº 8, 9; Otro Pedido - Entrega Nº 1, 2"
)), .Names = c("albaran", "fecha", "cliente", "estado", "descrip", 
"destinatario", "direccion", "cp", "poblacion", "observaciones"
), class = "data.frame", row.names = c(NA, -2L))
 类似资料:
  • 下面是一个函数,它获取一个长字符串,并返回一个按段落分割的字符串。 问题是k是空的。为什么函数不起作用?

  • 在机器学习中,通常将所有的数据划分为三份:训练数据集、验证数据集和测试数据集。它们的功能分别为 训练数据集(train dataset):用来构建机器学习模型 验证数据集(validation dataset):辅助构建模型,用于在构建过程中评估模型,为模型提供无偏估计,进而调整模型超参数 测试数据集(test dataset):用来评估训练好的最终模型的性能 不断使用测试集和验证集会使其逐渐失去

  • 问题内容: 我有实体 与实体有关 与实体有关 在实体中,我有用注释的字段。我也有仓库 当我称它为 例外时 如何忽略从数据库加载该字段? 问题答案: 我找到了解决方案,问题出在“注释”中,当我将其更改为正常时。

  • 问题内容: 这是一个自我回答的帖子。为什么?因为缺少数据样本,所以Power BI中的许多问题都无法回答。另外,许多人似乎想知道如何使用Python在Power BI中编辑数据表。当然,全世界都需要Power BI中Python的更广泛使用。有人认为您必须将Python代码段应用于其他位置加载的现有表。我对本文的回答将向您展示如何在原本为空的Power BI文件中用几行代码构建一个(相当大的)数据

  • 问题内容: 我正在使用PHP 函数: 当我收到这封电子邮件时,它看起来像这样: 我期望这样的事情: 没有HTTP标头也可以正常工作。如何制作 新行 并仍使用“ Content- Type”声明? 问题答案: 您需要使用一个,因为您是。 它没有标题就可以工作,因为这样您的电子邮件将被解释为 纯文本 。如果您确实想使用,则应该使用,但那样会丢失任何标记。

  • 尝试将数据集吐槽到和,然后需要将其保存为格式。 这是到目前为止的代码,