R 从表中提取有用信息以预测真实场景

R 从表中提取有用信息以预测真实场景,r,prediction,R,Prediction,假设我是一家快递公司的主管,我想说明我的产品在哪些条件下以良好的质量送达收件人,例如未破损、包装完好等 Product operator1 operator2 operator3 operator4 weather day quality product1 x 0 0 x sun mon x product2 0 x 0 0 grey tue 0 product3 x x x x grey mon x

假设我是一家快递公司的主管,我想说明我的产品在哪些条件下以良好的质量送达收件人,例如未破损、包装完好等

Product operator1   operator2   operator3   operator4   weather day quality
product1    x   0   0   x   sun mon x
product2    0   x   0   0   grey    tue 0
product3    x   x   x   x   grey    mon x
product4    0   x   0   0   cloudy  fri 0
product5    0   0   x   x   grey    sat 0
product6    x   x   0   0   grey    wed x
product7    x   0   0   x   cloudy  wed 0
product8    0   0   x   x   grey    wed x
product9    x   0   0   0   grey    mon 0
product10   0   0   x   0   cloudy  tue x
所以我有这个代理表,我想从任意组合和变量数量中提取此类信息,例如:

Operator1 = x
Operator2 = x
Operator3 = x
Operator4 = x
Weather = sunny
Day = mon
Operator1 = x + Operator2 = x
Operator1 = x + weather = sunny
etc..
当n的比率为。质量好的产品的数量。根据特定变量值过滤的产品数量满足比率,比如说>0.8。通过这种方式,我将确定交付产品的最佳条件。 我理解这是一个复杂的问题,但我希望有人知道一些方法或一些特定的软件包,可以解决这个问题

对标题也很抱歉。这是我第一次谈论这样的话题。
提前感谢您提供的任何帮助

当然可以做您想做的事情,我在这里给您举一个如何实现的例子,但是看起来您可以通过阅读一本关于R的好入门读物来理解不同的数据类型和数据操作的基本概念

首先,我将数据的一个副本作为数据帧加载到R中:

data.frameProduct=paste0product,1:10, 运算符1=unlistrsplitx0x00xx0x0, 运算符2=unlistrsplit0xxxx0x0000, 运算符3=unlistrsplit00x0x00x0x, 运算符4=unlistrsplitx0xx00, 天气=csun,灰色,灰色,多云,灰色, 灰色,多云,灰色,灰色,灰色, 日=周一、周二、周一、周五、周六, 星期三,星期三,星期一,星期二, 质量=未列表的plitx0x00x0x0x,->交付 要显示这与您的数据相同,请执行以下操作:

>交货 产品运营商1运营商2运营商3运营商4天气日质量 1件产品1 x 0 x太阳月x 2件产品2 0 x 0 0灰色tue 0 3件产品3 x x x灰色monx 4产品4 0 x 0 0多云的星期五0 5件产品5 0 x 0 x灰色sat 0 6件产品6 x 0 0灰色wed x 7件产品7 x 0 x 0 8件产品8 0 x x灰色wed x 9产品9 x 0 0灰色mon 0 10件产品10 0 x 0灰色周二礼服 现在,我们需要将您的表转换为可以正确处理的格式。如您所愿,R不会理解0和x的列,因此需要将它们转换为真/假值或0/1值。我们可以借助tidyverse中的dplyr包来实现这一点:

现在,通过将列名放入group_by函数,您可以总结所选任何组合的比例。在这种情况下,让我们执行operator1、day和weather:

交付量%>% 操作员1分组,日期,天气%>% SummarySequality=paste0meanquality*100,% 这很有希望给出你想要的结果,每个变量组合的质量交付比例

一个tibble:8x4 组:操作员1,第[?]天 操作员1天天气质量 10星期五多云0% 20 sat灰色0% 30周二灰色50% 40星期三灰色100% 5.1灰色50% 6周一至周日100% 7.1星期三多云0% 8.1 wed灰色100% 如果您希望看到不同的组合,请将传递给group_by的变量更改为您想要的任何变量

install.packages("tidyverse")
library(tidyverse)

deliveries %<>% transmute(Product = Product,
                          operator1 = as.numeric(operator1 == "x"),
                          operator2 = as.numeric(operator2 == "x"),
                          operator3 = as.numeric(operator3 == "x"),
                          operator4 = as.numeric(operator4 == "x"),
                          weather = weather,
                          day = day,
                          quality   = as.numeric(quality == "x"))