使用 R 包 dpylr 将中位数添加到所有数据组合中

卡罗勒斯·马迪森·普尔巴

这是我的数据

## Data
datex <- c(rep("2021-01-18", 61), rep("2021-01-19", 125))
hourx <- c(0,1,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,16,10,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,11,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,15,15,15,15,16,16,16,16)
seller <- c("dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2","dombsdpapp1","dombsdpapp1","dombsdpapp2","dombsdpapp2")
product <- c("00021460","00021460","00021460","00021459","00021460","00021459","00021460","00021459","00021460","00021459","00021460","00021459","00021460","00021460","00021459","00021460","00021459","00021460","00021459","00021460","00021459","00021460","00021459","00021459","00021460","00021459","00021460","00021460","00021460","00021459","00021459","00021460","00021459","00021459","00021460","00021460","00021459","00021459","00021460","00021459","00021460","00021459","00021460","00021459","00021460","00021460","00021459","00021459","00021460","00021460","00021459","00021459","00021460","00021460","00021459","00021460","00021459","00021460","00021459","00021460","00021459","00021459","00021460","00021459","00021459","00021459","00021460","00021459","00021459","00021460","00021460","00021459","00021459","00021460","00021460","00021459","00021460","00021460","00021460","00021459","00021459","00021460","00021459","00021459","00021460","00021459","00021460","00021460","00021459","00021460","00021459","00021460","00021459","00021459","00021460","00021460","00021460","00021460","00021459","00021459","00021460","00021459","00021459","00021460","00021460","00021459","00021459","00021459","00021460","00021460","00021459","00021460","00021459","00021460","00021459","00021459","00021459","00021460","00021460","00021460","00021460","00021459","00021459","00021459","00021459","00021460","00021460","00021459","00021459","00021460","00021460","00021459","00021459","00021460","00021460","00021459","00021460","00021459","00021460","00021460","00021459","00021460","00021459","00021460","00021460","00021459","00021460","00021459","00021460","00021459","00021459","00021460","00021460","00021459","00021459","00021460","00021460","00021460","00021459","00021460","00021459","00021459","00021459","00021460","00021460","00021459","00021459","00021460","00021460","00021460","00021459","00021459","00021460","00021459","00021459","00021459","00021460","00021460","00021460","00021460","00021460","00021460","00021460","00021460","00021460","00021460")
detail <- c("E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","notEnoughBalance","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","E99","notEnoughBalance","E99","success","success","success","E99","success","success","E99","success","E99","success","E99","E99","success","E99","E99","success","E99","success","E99","success","E99","success","E99","success","success","E99","E99","E99","success","success","E99","success","E99","success","E99","success","success","E99","E99","E99","success","E99","success","success","E99","E99","success","E99","success","E99","success","success","E99","E99","success","success","E99","E99","success","E99","success","success","E99","success","E99","success","E99","E99","success","success","E99","E99","success","E99","success","success","E99","E99","E99","success","success","notEnoughBalance","E99","success","success","E99","success","E99","success","notEnoughBalance","E99","success","E99","E99","success","E99","success","success","E99","success","E99","E99","success","E99","success","success","E99","success","success","E99","E99","success","notEnoughBalance","E99","E99","success","E99","success","success","E99","E99","success","success","E99")
status <- c("FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","OK01","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","FI04","OK01","FI04","OK00","OK00","OK00","FI04","OK00","OK00","FI04","OK00","FI04","OK00","FI04","FI04","OK00","FI04","FI04","OK00","FI04","OK00","FI04","OK00","FI04","OK00","FI04","OK00","OK00","FI04","FI04","FI04","OK00","OK00","FI04","OK00","FI04","OK00","FI04","OK00","OK00","FI04","FI04","FI04","OK00","FI04","OK00","OK00","FI04","FI04","OK00","FI04","OK00","FI04","OK00","OK00","FI04","FI04","OK00","OK00","FI04","FI04","OK00","FI04","OK00","OK00","FI04","OK00","FI04","OK00","FI04","FI04","OK00","OK00","FI04","FI04","OK00","FI04","OK00","OK00","FI04","FI04","FI04","OK00","OK00","OK01","FI04","OK00","OK00","FI04","OK00","FI04","OK00","OK01","FI04","OK00","FI04","FI04","OK00","FI04","OK00","OK00","FI04","OK00","FI04","FI04","OK00","FI04","OK00","OK00","FI04","OK00","OK00","FI04","FI04","OK00","OK01","FI04","FI04","OK00","FI04","OK00","OK00","FI04","FI04","OK00","OK00","FI04")
channel <- c("f2","f2","f2","f3","f2","f3","f2","f3","f2","f3","f2","f3","f2","f2","f3","f2","f3","f2","f3","f2","f3","f2","f3","f3","f2","f3","f2","f2","f2","f3","f3","f2","f3","f3","f2","f2","f3","f3","f2","f3","f2","f3","f2","f3","f2","f2","f3","f3","f2","f2","f3","f3","f2","f2","f3","f2","f3","f2","f3","f2","f3","f3","f2","f3","f3","f3","f2","f3","f3","f2","f2","f3","f3","f2","f2","f3","f2","f2","f2","f3","f3","f2","f3","f3","f2","f3","f2","f2","f3","f2","f3","f2","f3","f3","f2","f2","f2","f2","f3","f3","f2","f3","f3","f2","f2","f3","f3","f3","f2","f2","f3","f2","f3","f2","f3","f3","f3","f2","f2","f2","f2","f3","f3","f3","f3","f2","f2","f3","f3","f2","f2","f3","f3","f2","f2","f3","f2","f3","f2","f2","f3","f2","f3","f2","f2","f3","f2","f3","f2","f3","f3","f2","f2","f3","f3","f2","f2","f2","f3","f2","f3","f3","f3","f2","f2","f3","f3","f2","f2","f2","f3","f3","f2","f3","f3","f3","f2","f2","f2","f2","f2","f2","f2","f2","f2","f2")
transaction <- c(1,6,2,5,1,2,1,9,6,12,5,25,14,6,22,9,10,14,15,12,22,12,12,14,9,11,3,3,4,0,1,4,3,1,2,3,3,5,7,5,5,6,9,16,8,13,10,20,15,18,10,19,15,5,13,12,10,12,26,14,0,4,0,0,0,2,0,0,2,0,4,0,6,8,0,2,3,0,2,0,1,0,1,0,2,0,0,2,1,1,0,0,3,0,1,0,3,0,0,6,5,2,0,8,0,0,12,11,0,2,0,11,0,0,14,21,0,0,13,7,0,17,0,0,18,0,7,0,4,4,0,0,7,12,0,13,0,0,13,6,9,0,0,0,16,0,0,16,0,14,0,0,9,0,11,8,0,8,0,0,8,0,10,5,0,15,0,0,3,0,0,8,8,0,0,6,5,0,8,0,0,5,1,0,0,3)
mydata <- data.frame(datex, hourx, seller, product, detail, status, channel, transaction)

我的任务是将中位数添加到组合中。这就是我的意思。这是一个示例:

  • 卖家 = "dombsdpapp1"
  • 产品 = "00021460"
  • 细节=“E99”
  • 状态 = "FI04"
  • 频道=“f2”
combination1 <- mydata[(mydata$seller == "dombsdpapp1" & mydata$product == "00021460" & mydata$detail == "E99" & mydata$status == "FI04" & mydata$channel == "f2"),]

combination1
# datex hourx      seller  product detail status channel transaction
# 1   2021-01-18     0 dombsdpapp1 00021460    E99   FI04      f2           1
# 2   2021-01-18     1 dombsdpapp1 00021460    E99   FI04      f2           6
# 3   2021-01-18     2 dombsdpapp1 00021460    E99   FI04      f2           2
# 5   2021-01-18     3 dombsdpapp1 00021460    E99   FI04      f2           1
# 7   2021-01-18     4 dombsdpapp1 00021460    E99   FI04      f2           1
# 9   2021-01-18     5 dombsdpapp1 00021460    E99   FI04      f2           6
# 11  2021-01-18     6 dombsdpapp1 00021460    E99   FI04      f2           5
# 13  2021-01-18     7 dombsdpapp1 00021460    E99   FI04      f2          14
# 14  2021-01-18     8 dombsdpapp1 00021460    E99   FI04      f2           6
# 16  2021-01-18     9 dombsdpapp1 00021460    E99   FI04      f2           9
# 18  2021-01-18    10 dombsdpapp1 00021460    E99   FI04      f2          14
# 20  2021-01-18    11 dombsdpapp1 00021460    E99   FI04      f2          12
# 22  2021-01-18    12 dombsdpapp1 00021460    E99   FI04      f2          12
# 25  2021-01-18    13 dombsdpapp1 00021460    E99   FI04      f2           9
# 27  2021-01-18    14 dombsdpapp1 00021460    E99   FI04      f2           3
# 28  2021-01-18    15 dombsdpapp1 00021460    E99   FI04      f2           3
# 29  2021-01-18    16 dombsdpapp1 00021460    E99   FI04      f2           4
# 71  2021-01-19     1 dombsdpapp1 00021460    E99   FI04      f2           4
# 77  2021-01-19     2 dombsdpapp1 00021460    E99   FI04      f2           3
# 85  2021-01-19     3 dombsdpapp1 00021460    E99   FI04      f2           2
# 90  2021-01-19     4 dombsdpapp1 00021460    E99   FI04      f2           1
# 97  2021-01-19     5 dombsdpapp1 00021460    E99   FI04      f2           3
# 104 2021-01-19     6 dombsdpapp1 00021460    E99   FI04      f2           8
# 112 2021-01-19     7 dombsdpapp1 00021460    E99   FI04      f2          11
# 120 2021-01-19     8 dombsdpapp1 00021460    E99   FI04      f2           7
# 130 2021-01-19     9 dombsdpapp1 00021460    E99   FI04      f2           4
# 139 2021-01-19    10 dombsdpapp1 00021460    E99   FI04      f2          13
# 145 2021-01-19    11 dombsdpapp1 00021460    E99   FI04      f2          16
# 156 2021-01-19    12 dombsdpapp1 00021460    E99   FI04      f2           8
# 164 2021-01-19    13 dombsdpapp1 00021460    E99   FI04      f2           5
# 173 2021-01-19    14 dombsdpapp1 00021460    E99   FI04      f2           8
# 179 2021-01-19    15 dombsdpapp1 00021460    E99   FI04      f2           8
# 183 2021-01-19    16 dombsdpapp1 00021460    E99   FI04      f2           1

从结果中我们可以看到 datex "2021-01-18" 和 "2021-01-19" 错过了hourx 从17 到23,所以我们需要将combination1 的中位数加入hourx 17-23。我像这样手动操作

## Add Median into combination1
add_datex1 <- rep("2021-01-18",7); add_datex2 <- rep("2021-01-19",7); add_hourx <- 17:23; add_seller <- rep("dombsdpapp1",7); add_product <- rep("00021460",7); add_detail <- rep("E99",7); add_status <- rep("FI04",7); add_channel <- rep("f2",7); add_transaction <- rep(median(combination1$transaction),7)
add_18 <- data.frame(add_datex1, add_hourx, add_seller, add_product, add_detail, add_status, add_channel, add_transaction)
colnames(add_18) <- colnames(mydata)
add_19 <- data.frame(add_datex2, add_hourx, add_seller, add_product, add_detail, add_status, add_channel, add_transaction)
colnames(add_19) <- colnames(mydata)
new_combination1 <- rbind(combination1[1:17,],add_18, combination1[-(1:17),], add_19)
rownames(new_combination1) <- 1:47
new_combination1
        datex hourx      seller  product detail status channel transaction
#1  2021-01-18     0 dombsdpapp1 00021460    E99   FI04      f2           1
#2  2021-01-18     1 dombsdpapp1 00021460    E99   FI04      f2           6
#3  2021-01-18     2 dombsdpapp1 00021460    E99   FI04      f2           2
#4  2021-01-18     3 dombsdpapp1 00021460    E99   FI04      f2           1
#5  2021-01-18     4 dombsdpapp1 00021460    E99   FI04      f2           1
#6  2021-01-18     5 dombsdpapp1 00021460    E99   FI04      f2           6
#7  2021-01-18     6 dombsdpapp1 00021460    E99   FI04      f2           5
#8  2021-01-18     7 dombsdpapp1 00021460    E99   FI04      f2          14
#9  2021-01-18     8 dombsdpapp1 00021460    E99   FI04      f2           6
#10 2021-01-18     9 dombsdpapp1 00021460    E99   FI04      f2           9
#11 2021-01-18    10 dombsdpapp1 00021460    E99   FI04      f2          14
#12 2021-01-18    11 dombsdpapp1 00021460    E99   FI04      f2          12
#13 2021-01-18    12 dombsdpapp1 00021460    E99   FI04      f2          12
#14 2021-01-18    13 dombsdpapp1 00021460    E99   FI04      f2           9
#15 2021-01-18    14 dombsdpapp1 00021460    E99   FI04      f2           3
#16 2021-01-18    15 dombsdpapp1 00021460    E99   FI04      f2           3
#17 2021-01-18    16 dombsdpapp1 00021460    E99   FI04      f2           4
#18 2021-01-18    17 dombsdpapp1 00021460    E99   FI04      f2           6
#19 2021-01-18    18 dombsdpapp1 00021460    E99   FI04      f2           6
#20 2021-01-18    19 dombsdpapp1 00021460    E99   FI04      f2           6
#21 2021-01-18    20 dombsdpapp1 00021460    E99   FI04      f2           6
#22 2021-01-18    21 dombsdpapp1 00021460    E99   FI04      f2           6
#23 2021-01-18    22 dombsdpapp1 00021460    E99   FI04      f2           6
#24 2021-01-18    23 dombsdpapp1 00021460    E99   FI04      f2           6
#25 2021-01-19     1 dombsdpapp1 00021460    E99   FI04      f2           4
#26 2021-01-19     2 dombsdpapp1 00021460    E99   FI04      f2           3
#27 2021-01-19     3 dombsdpapp1 00021460    E99   FI04      f2           2
#28 2021-01-19     4 dombsdpapp1 00021460    E99   FI04      f2           1
#29 2021-01-19     5 dombsdpapp1 00021460    E99   FI04      f2           3
#30 2021-01-19     6 dombsdpapp1 00021460    E99   FI04      f2           8
#31 2021-01-19     7 dombsdpapp1 00021460    E99   FI04      f2          11
#32 2021-01-19     8 dombsdpapp1 00021460    E99   FI04      f2           7
#33 2021-01-19     9 dombsdpapp1 00021460    E99   FI04      f2           4
#34 2021-01-19    10 dombsdpapp1 00021460    E99   FI04      f2          13
#35 2021-01-19    11 dombsdpapp1 00021460    E99   FI04      f2          16
#36 2021-01-19    12 dombsdpapp1 00021460    E99   FI04      f2           8
#37 2021-01-19    13 dombsdpapp1 00021460    E99   FI04      f2           5
#38 2021-01-19    14 dombsdpapp1 00021460    E99   FI04      f2           8
#39 2021-01-19    15 dombsdpapp1 00021460    E99   FI04      f2           8
#40 2021-01-19    16 dombsdpapp1 00021460    E99   FI04      f2           1
#41 2021-01-19    17 dombsdpapp1 00021460    E99   FI04      f2           6
#42 2021-01-19    18 dombsdpapp1 00021460    E99   FI04      f2           6
#43 2021-01-19    19 dombsdpapp1 00021460    E99   FI04      f2           6
#44 2021-01-19    20 dombsdpapp1 00021460    E99   FI04      f2           6
#45 2021-01-19    21 dombsdpapp1 00021460    E99   FI04      f2           6
#46 2021-01-19    22 dombsdpapp1 00021460    E99   FI04      f2           6
#47 2021-01-19    23 dombsdpapp1 00021460    E99   FI04      f2           6

如何使用 dplyr 为所有组合自动将中位数添加到缺少的“hourx”中?非常感谢。

创建函数以完成hourx并填充它median

fillHour <- function(df){
  
  data.frame(
    hourx = 0:23
  ) %>%
    left_join(df, by = "hourx") %>%
    replace_na(list(transaction = median(.[["transaction"]], na.rm = TRUE)))
}

nest数据帧,并使用fillHourdata

mydata %>% 
  group_by(datex, seller, product, detail, status, channel) %>% 
  nest() %>% 
  mutate(data = map(data, fillHour)) %>% 
  unnest(cols = "data") %>% 
  ungroup()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用网格R包添加边距

R dpylr select_if具有多个条件

使用查找表使用dpylr重新编码值

使用R googlesheets包替换googlesheet的所有内容?

使用dpylr在R中进行动态CAGR计算

在R版本3.4.4中使用R包的“效果”

R包中的数据可以使用.rds文件吗?

将符号%添加到R中的所有数据帧

坚持使用dpylr的mutate / summaryise将颜色映射到可变级别

Laravel使用包中的包

Dpylr的重新编码功能多对一R

dpylr-使用seq_along内存进行突变会导致大型数据集

使用pagedown :: chrome_print(R包)将页码添加到pdf?

使用R Markdown中的citation()自动生成R包的书目

如何使用R中的gtsummary包将下标添加到表中的标签?

使用R中的dpylr根据ID的最大值删除ID

R-使用xlsx包将文本添加到合并的单元格

使用rCharts将唯一链接添加到图形中的所有数据点

如何使用重塑包重塑r中的数据

使用bigrams在R中带有tm包的LDA

如何使用R中的栅格数据包显示栅格中的所有列名称

使用lapply将ID列添加到R CoreNLP软件包令牌生成器输出中

使用 R,如何使用现有数据框中列的中位数创建新数据集?

使用相关的 R 包将信息添加到 dygraph 的信息框

如何使用 dpylr 和 lubridate 添加依赖于最后一行的行?

将火灾数据作为具有纬度和经度值的点添加到使用 R 中的 OpenAir 包生成的气团返回轨迹图中

将 Rcpp 文件添加到现有的 r 包中?

使用 R 中的 purr 包匹配和分析数据

如何在 R 中显示所有带有数据表的条目?(DT包)