我一直在寻找解决方案,但仍然无法解决。
如果您有任何想法?
我当前的目录是:“ 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”)中的错误:无法打开连接
在最后一个循环后出现此错误。第一个效果很好。
谢谢。
答案 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]]
)