file(file,“ rt”)中的错误:无法打开连接(正在寻找其他解决方案)

时间:2019-12-07 15:25:11

标签: r file

我一直在寻找解决方案,但仍然无法解决。

如果您有任何想法?

我当前的目录是:“ C:/ Users /François/ Desktop / CHALLENGE KAGGLE /données/ google”

在这里您可以找到我的代码:

            setwd("C:/Users/François/Desktop/CHALLENGE KAGGLE/données/google")
getwd ()

files_names <- list.files(path="C:/Users/François/Desktop/CHALLENGE KAGGLE/données/google")
nb_files <- length(files_names)
data_names <- vector("list",length=nb_files)

for (i in 1 : nb_files)
{
  data_names[i] <- strsplit(files_names[i], split=".csv")
}

for (i in 1:nb_files) {
  assign(data_names[[i]],
         read.csv2(paste (here("/", files_names[i])),sep=",",skip=1))
}

,错误消息为:file(file,“ rt”)中的错误:无法打开连接

在最后一个循环后出现此错误。第一个效果很好。

谢谢。

1 个答案:

答案 0 :(得分:2)

选项不是for循环,而是lapply并将输出存储在list

lst1 <- lapply(file_names, read.csv, skip = 1)
names(lst1) <- sub("\\.csv", "", file_names)

最好不要在全局环境中使用assign创建多个对象。如果真的需要

list2env(lst1, .GlobalEnv)

在OP的代码中,对“ data_names”的分配可以是

data_names[[i]] <- strsplit(files_names[i], split=".csv", fixed = TRUE)[[1]]

as data_names被初始化为list。通过执行data_names[i],它将在列表内创建一个列表元素。同样,strsplit的输出是list。在这里,我们将每个“ files_names”分开分割,因此长度为list。我们需要将该元素提取为向量([[1]]