尽管调用中提供了值,但函数仍使用默认参数

时间:2020-08-26 01:03:41

标签: r

我正在调用x = 14的函数,因为该文件夹仅包含文件0-13,而不像其他文件那样包含0-23,但是它给我一个错误,指出14.csv不在目录中,但是应该在13.csv处停止。当我只用14代替x时,代码就起作用了,为什么当我用x = 14调用函数时它为什么不起作用?似乎正在使用默认参数。下面的相关代码。

library(tidyverse)
library(lubridate)

files <- c("0.csv", "1.csv", "2.csv", "3.csv", "4.csv", "5.csv", "6.csv", "7.csv", "8.csv", "9.csv", "10.csv", "11.csv", "12.csv", "13.csv", "14.csv", "15.csv", "16.csv", "17.csv", "18.csv", "19.csv", "20.csv", "21.csv", "22.csv", "23.csv")

dayFiles <- function(x = length(files)) {
  output <- vector("list", x)
  for (i in seq_along(files)) {
    output[[i]] <- read_csv(files[[i]],
                            col_types = cols(
                              `DBM Matching Targeted Segments` = col_character(),
                              `DBM Matching Targeted Keywords` = col_character()
                            )) %>%
      filter(`DBM Insertion Order ID` == 9999999) %>%
      select(`Event Time`, `DBM Insertion Order ID`, `User ID`)
    
  }
  for (i in 2:length(output)) {
    output[[i]] <- full_join(output[[i-1]], output[[i]])
  }
  return(output[[length(output)]])
}

A24 <- dayFiles(x = 14)

2 个答案:

答案 0 :(得分:0)

您的循环遍历长度为24的files。相反,它应该在1:x之间创建一个序列。试试:

dayFiles <- function(x = length(files)) {

  output <- vector("list", x)
  for (i in seq_len(x)) {
    output[[i]] <- read_csv(files[[i]],
                            col_types = cols(
                              `DBM Matching Targeted Segments` = col_character(),
                              `DBM Matching Targeted Keywords` = col_character()
                            )) %>%
      filter(`DBM Insertion Order ID` == 9999999) %>%
      select(`Event Time`, `DBM Insertion Order ID`, `User ID`)
    
  }
  for (i in 2:length(output)) {
    output[[i]] <- full_join(output[[i-1]], output[[i]])
  }
  return(output[[length(output)]])
}

A24 <- dayFiles(x = 14)

为进一步简化,您可以尝试使用reduce(output, full_join)。而不是将数据框循环连接。

答案 1 :(得分:0)

因为在这一行:

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
        switch navigationAction.navigationType {
        case .linkActivated:
            decisionHandler(.allow)
            return
        default:
            break
        }
        decisionHandler(.allow)
    }

您要遍历整个矢量,而不是1:14