我写了一个简单的函数:
myfunction <- function(fileName, stringsAsFactors=TRUE,
check.names=FALSE,
skip =1,...) {
Data <- read.delim(fileName, skip = skip,
stringsAsFactors=stringsAsFactors,
check.names = check.names, ...)
cb <- list()
Index <- as.numeric(as.factor(Data[,1]))
cb <- cbind(Data, Index)
return(cb)
}
此函数获取名为 Data 的文件的第一列,根据该第一列创建一个索引,然后将文件 Data 和创建的索引 cbind。
此函数将应用于名为:的文件myfile_00.txt
中,myfile_01.txt
依此类推。对于一个文件,它看起来像:
myfunction (fileName = "myfile_00.txt")
myfunction (fileName = "myfile_01.txt")
.......
我有大约 1000 个文件,所以我想,循环可以来自另一篇文章:
mytxt <- dir(pattern=".txt")
n <- length(mytxt)
mylist <- vector("list", n)
for(i in 1:n) {
mylist[[i]] <- read.delim(mytxt[i], header = F, skip = 1)
}
然后:
d <- lapply(mylist, myfunction)
不幸的是它不起作用......使用lapply
时发生错误:
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
'file' must be a character string or connection
因为我是 R 的新手,所以我可能会犯错误,我无法弄清楚。