我一直在寻找解决方案,但我仍然无法修复它。
如果你有任何想法 ?
我目前的目录是:"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))
}
错误消息是:文件(文件,"rt"(中的错误:无法打开连接
我在最后一个循环后收到此错误。第一个效果很好。
谢谢。
不是执行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]]
因为data_names
被初始化为list
。 通过执行data_names[i]
,它是在列表中创建一个列表元素。 此外,strsplit
的输出是一个list
。 在这里,我们分别拆分每个"files_names",因此它将是一个长度为 1 的list
。 我们需要将该元素提取为向量([[1]]
(