我正在调用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)
答案 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