dplyr::n() 返回“错误:错误:n() 只应在数据上下文中调用”

dav*_*ino 11 r dplyr

我得到了以下代码

for (i in c(1:(ncol(df_multi_paths_cols) - 1))) {

  df_cache <- df_multi_paths_cols %>%
    select(num_range("ord_", c(i, i+1))) %>% 
    #select within dataset columns with prefix and within specific range i and i+1
    na.omit() %>% 
    # The na.omit R function removes all incomplete cases of a data object 
    # (typically of a data frame, matrix or vector).
    group_by(.dots = c(paste0("ord_", c(i, i+1)))) %>% 
    #paste=concatenate strings without separator
    #  group_by() takes an existing tbl and converts it into a grouped tbl where
    # operations are performed "by group". ungroup() removes grouping.
    summarise(number = n()) %>%
    # summarise() is typically used on grouped data created by group_by(). The output will 
    # have one row for each group.
    #n()=numbe robservation in the group
    ungroup()

    colnames(df_cache)[c(1, 2)] <- c('channel_from', 'channel_to')
    df_res[[i]] <- df_cache
}
Run Code Online (Sandbox Code Playgroud)

以下错误:

错误:n() 只能在数据上下文中调用

在网上搜索,但似乎没有描述与此特定错误相关的解决方案。任何提示都非常感谢,因为我无法弄清楚为什么 n() 函数在总结中不起作用。

数据帧 df_multi_path_cols 是这样的:

> df_multi_paths_cols
     ord_1                        ord_2                    ord_3                     ord_4
1  (start)                MANAGER_SASWP            MANAGER_SRSLT             MANAGER_3RDWP
2  (start) GROUPDIRECTOR/CXO_LIVEWEBEXR GROUPDIRECTOR/CXO_SASWEB     GROUPDIRECTOR/CXO_WPR
3  (start)        GROUPDIRECTOR/CXO_SUG                   (null)                      <NA>
4  (start)        GROUPDIRECTOR/CXO_SUG  GROUPDIRECTOR/CXO_3RDWP GROUPDIRECTOR/CXO_SASLIVE
5  (start)        GROUPDIRECTOR/CXO_SUG    GROUPDIRECTOR/CXO_SUG                    (null)
6  (start)             DIRECTOR_3RDLIVE      DIRECTOR_ODSASWEBIN              DIRECTOR_SUG
7  (start)                DIRECTOR_DMCR             DIRECTOR_SUG                    (null)
8  (start)             DIRECTOR_3RDLIVE             DIRECTOR_SUG   GROUPDIRECTOR/CXO_SASWP
9  (start)                 DIRECTOR_SUG            DIRECTOR_EPCR             DIRECTOR_EPCR
10 (start)                 DIRECTOR_SUG             DIRECTOR_SUG             MANAGER_SASWP
11 (start)                  MANAGER_SUG                   (null)                      <NA>
                   ord_5                 ord_6                  ord_7                  ord_8
1          MANAGER_SASWP         MANAGER_EBOOK          MANAGER_3RDWP        MANAGER_ONASOFF
2           (conversion)                  <NA>                   <NA>                   <NA>
3                   <NA>                  <NA>                   <NA>                   <NA>
4  GROUPDIRECTOR/CXO_WBR GROUPDIRECTOR/CXO_SUG GROUPDIRECTOR/CXO_WDLR GROUPDIRECTOR/CXO_WDLR
5                   <NA>                  <NA>                   <NA>                   <NA>
6       DIRECTOR_ONASOFF          DIRECTOR_WPR            MANAGER_SUG           (conversion)
Run Code Online (Sandbox Code Playgroud)

更新 04/07/2019

dput(df_multi_paths_cols)
Run Code Online (Sandbox Code Playgroud)

结构(list(ord_1 = c("(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(开始)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" ", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" , "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", " (start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)", "(start)" )", "(start)" ), ord_2 = c("MANAGER_SASWP", "GROUPDIRECTOR/CXO_LIVEWEBEXR", "GROUPDIRECTOR/CXO_SUG", "GROUPDIRECTOR/CXO_SUG", "GROUPDIRECTOR/CXO_SUG", "DIRECTOR_3RDLIVE", "DITORRECTOR "DIRECTOR_3RDLIVE", "DIRECTOR_SUG", "DIRECTOR_SUG", "MANAGER_SUG", "TEAMMEMBER_3RDLIVE", "TEAMMEMBER_3RDLIVE", "TEAMMEMBER_OTHR", "TEAMMEMBER_SASLIVE", "DIRECTOR_3RDLIVE", "DIRECTOR_3RDLIVE",", "DIRECTOR_3RDLIVE",",", "DIRECTOR_3RDLIVE",",", "DIRECTOR_3RDLIVE"," ", "TEACHER_DMCR", "TEACHER_OTHR", "TEACHER_RMCHR", "TEACHER_SUG", "TEACHER_WBR", "DIRECTOR_DMCR", "DIRECTOR_DMCR", "DIRECTOR_DMCR", "DIRECTOR_SASEXEC", "DIRECTOR_SASLIVE", "DIRECTOR_SUG", "", "TERCTOR_SUG", "", "TEAM_SUG", "TEACHER_DIRECTOR_DMCR" , "_SASLIVE", "DIRECTOR_SUG", "TEAMMEMBER_3RDLIVE", "DIRECTOR_SASEXEC", "DIRECTOR_SUG", "MANAGER_TEL", "DIRECTOR_SUG", "DIRECTOR_3RDLIVE", "DIRECTOR_DMCR", "DIRECTOR_DIRECTOR_SASLIVE", "DIRECTOR_DIRECTOR_SASLIVE", "DIRECTOR_DIRECTOR_SASLIVE", DIRECTOR_WBR", "MANAGER_3RDLIVE", "MANAGER_SASLIVE", "MANAGER_SUG", "_CR", "DIRECTOR_SASLIVE", "DIRECTOR_3RDLIVE”、“DIRECTOR_3RDLIVE”、“TEAMMEMBER_SASLIVE”、“DIRECTOR_SUG”、“DIRECTOR_TEL”、“MANAGER_3RDLIVE”、“MANAGER_IKR”、“MANAGER_SASEXEC”、“MANAGER_SASLIVE”、“FREL_MANAGER”、“MANAGER”、“MANAGER”、“MANAGER” 、“_WPR”、“DIRECTOR_SASLIVE”、“TEAMMEMBER_DMR”、“TEAMMEMBER_ID”、“TEAMMEMBER_IKR”、“TEAMMEMBER_SASEXEC”、“TEAMMEMBER_SASLIVE”、“TEAMMEMBER_SEFR”、“TEAMMEMBER_SRSLT”、“TEAMMEMBER_SRSLT”、“TEAMMEMBER_IKR”、“TEAMMEMBER_MEMBERT” DIRECTOR_COMR", "DIRECTOR_CR", "DIRECTOR_DMR", "DIRECTOR_TEL", "TEAMMEMBER_TEL", "DIRECTOR_DMR", "DIRECTOR_SASLIVE、“DIRECTOR_SASLIVE”、“DIRECTOR_SRSLT”、“DIRECTOR_TEL”、“DIRECTOR_TEL”、“MANAGER_SASLIVE”、“MANAGER_WPR”、“MANAGER_WPR”、“TEAMMEMBERIVE_3RDLIVE”、“TEAMMEMBER_3RDLIVE”、“TEAMMEMBER_3RDLIVE”、“TEAMMEMBER_TEAMBERMEM_Lead Generation” ", "TEAMMEMBER_DMR", "TEAMMEMBER_IKR", "TEAMMEMBER_TEL", "DIRECTOR_IKR", "DIRECTOR_SASLIVE", "DIRECTOR_SASLIVE", "DIRECTOR_SASEXEC", "MANAGER_CS", "DIRECTOR_3RDLIVE", "DIRECTOR_3RDLIVE", "", "DIRECTOR_SASLIVE", "DIRECTOR_3RDLIVE", "DIRECTOR_SASLIVE" "DIRECTOR_SASWP", "MANAGER_CR", "DIRECTOR_IKR", "DIRECTOR_SASLIVE", "TEAMMEMBER_SASLIVE”、“TEAMMEMBER_CR”、“MANAGER_OTHR”、“TEAMMEMBER_CR”、“MANAGER_SRSLT”、“DIRECTOR_DMR”、“DIRECTOR_IKR”、“MANAGER_COMR”、“MANAGER_DMR”、“MANAGER_IKR”、“WPRMANAGER”、“WPRMANAGER” , "TEAMMEMBER_WS", "DIRECTOR_3RDLIVE", "DIRECTOR_SASLIVE", "_SASLIVE", "DIRECTOR_3RDLIVE", "TEAMMEMBER_3RDLIVE", "TEAMMEMBER_COMR", "TEAMMEMBER_WPR", "TEAMMEMBER_CR", "TEAMMEMBER_CR", "TEAMMEMBER_CR", "TEAMBERLTERMMEMSKIVE", "TEAMBERLTEAMBER_MEMSKIVE" TEAMMEMBER_SASLIVE”、“TEAMMEMBER_SASLIVE”、“TEAMMEMBER_SASLIVE”、“TEAMMEMBER_WS”、“GROUPDIRECTOR/CXO_SASLIVE”, "MANAGER_SASLIVE", "GROUPDIRECTOR/CXO_DMCR", "GROUPDIRECTOR/CXO_SASLIVE", "GROUPDIRECTOR/CXO_SEFR", "MANAGER_3RDLIVE",

dav*_*ino 16

通过为 dplyr 包的每个函数指定来源的相关包,错误消失了:

for (i in c(1:(ncol(df_multi_paths_cols) - 1))) {

  df_cache <- df_multi_paths_cols %>%
    select(num_range("ord_", c(i, i+1)))   %>% 
    na.omit()  %>% 
    dplyr::group_by(.dots = c(paste0("ord_", c(i, i+1))))  %>% 
    dplyr::summarise(number=dplyr::n())  %>%
    ungroup() 

    colnames(df_cache)[c(1, 2)] <- c('channel_from', 'channel_to')
    df_res[[i]] <- df_cache
}
Run Code Online (Sandbox Code Playgroud)

现在我几乎认为它与具有相同函数名称“summarise”的其他包存在某种冲突,如证明

> conflicts()
  [1] "predictors"    "%>%"           "compact"       "lift"          "cols"          "%>%"          
  [7] "%>%"           "shift"         "take"          "transpose"     "%>%"           "add_row"      
 [13] "arrange"       "as_data_frame" "as_tibble"     "between"       "coalesce"      "count"        
 [19] "data_frame"    "data_frame_"   "desc"          "failwith"      "first"         "frame_data"   
 [25] "glimpse"       "id"            "last"          "lst"           "lst_"          "mutate"       
 [31] "n"             "rename"        "summarise"     "summarize"     "tbl_sum"       "tibble"       
 [37] "tribble"       "trunc_mat"     "type_sum"      "matches"       "%>%"           "%>%"          
 [43] "expand"        "expm"          "t"             "%>%"           "enexpr"        "enexprs"      
 [49] "enquo"         "enquos"        "ensym"         "ensyms"        "expr"          "quo"          
 [55] "quo_name"      "quos"          "sym"           "syms"          "vars"          "dcast"        
 [61] "melt"          "smiths"        "coerce"        "plot"          "print"         "show"         
 [67] "summary"       "t"             "cov"           "cov2cor"       "df"            "filter"       
 [73] "lag"           "lowess"        "predict"       "smooth"        "toeplitz"      "update"       
 [79] "var"           "image"         "plot"          "?"             "data"          "head"         
 [85] "tail"          "Arith"         "cbind2"        "coerce"        "Compare"       "kronecker"    
 [91] "Logic"         "Math"          "Math2"         "Ops"           "rbind2"        "show"         
 [97] "Summary"       "all.equal"     "as.array"      "as.matrix"     "body<-"        "chol"         
[103] "chol2inv"      "colMeans"      "colSums"       "crossprod"     "det"           "determinant"  
[109] "diag"          "diag<-"        "diff"          "drop"          "format"        "intersect"    
[115] "isSymmetric"   "kronecker"     "mean"          "norm"          "Position"      "print"        
[121] "qr"            "qr.coef"       "qr.fitted"     "qr.Q"          "qr.qty"        "qr.qy"        
[127] "qr.R"          "qr.resid"      "rcond"         "rowMeans"      "rownames"      "rowSums"      
[133] "setdiff"       "setequal"      "solve"         "summary"       "t"             "tcrossprod"   
[139] "union"         "unname"        "url"           "which"         "zapsmall"    
Run Code Online (Sandbox Code Playgroud)


Sau*_*ade 12

这是因为包中的冲突,即“dplyr”包和“plyr”包中都存在summary/summarise。很可能是从错误的包中调用了该函数,从而导致了此错误。我们可以在引用它的包时调用该函数来避免这样的问题。

展示:

# Call summarise from plyr library
plyr::summarise(count = n())

# Call summarise from dplyr library
dplyr::summarise(count = n())
Run Code Online (Sandbox Code Playgroud)

我认为这会有所帮助,如果您有任何问题,请告诉我。干杯。