使用multidplyr添加缺失的行

时间:2017-01-18 07:33:46

标签: r

我正在尝试将缺失的行添加到以下数据框中。

df = data.frame(DATE = as.Date(c("2016-05-31", "2016-08-31", "2016-10-31", "2016-07-31", "2016-08-31", "2016-10-31", "2016-12-31")), 
            KONTR = c("122","122","122","553","553","102","102"),
            KAP = as.double(1:7),
            DIV =c("PI","PI","PI","OP","OP","PR","PR"))

此代码有效

result = df %>%
  group_by(KONTR) %>%
  do(left_join(data.frame(KONTR = .$KONTR[1], DATE = seq(min(.$DATE)+1, max(.$DATE)+1, by="1 month")-1), ., 
           by=c("KONTR", "DATE")))

但由于我的真实数据帧有1.5米行,因此完成时间超过15分钟。我尝试使用multidplyr以下代码,但我收到错误,我不知道错误。

cluster <- create_cluster(3)

by_kontr <- df %>% partition(KONTR,cluster=cluster)

result = by_kontr %>%
  group_by(KONTR) %>%
  do(left_join(data.frame(KONTR = .$KONTR[1], DATE = seq(min(.$DATE)+1, max(.$DATE)+1, by="1 month")-1), ., 
           by=c("KONTR", "DATE")))

Error in checkForRemoteErrors(lapply(cl, recvResult)) : 
  3 nodes produced errors; first error: could not find function "left_join"

2 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。从属级别需要库附件,因此我必须按照以下行添加到我的代码中:

cluster_eval(cluster,library(dplyr))

答案 1 :(得分:0)

另一个选项是提前注册您要使用的库

{% for item in news %}                            
     <h2> <a href= "{{item[1]}}">{{item[0]}}</a> <img src= "{{item[2]}}"  style="width:25px;height:18.25px;">  </h2> 
{% endfor %}

或者在multidplyr::cluster_library(cluster, "dplyr") by_kontr %>% group_by(KONTR) %>% do(left_join(data.frame(KONTR = .$KONTR[1], DATE = seq(min(.$DATE)+1, max(.$DATE)+1, by="1 month")-1), ., by=c("KONTR", "DATE"))) 命令中写package::function。即,而不是do,你写left_join

dplyr::left_join