我正在编写一个循环,每次运行 ega0.txt 和 b0.txt 需要两个文件。我正在运行从 a0.txt 和 b0.txt 到 a999.txt 和 b999.txt 的 100 多个文件。如果我对文件 a0 和 b0 到 a9 和 b9 运行目录中只有文件对 0-9,则我使用的模式函数非常有效。但是当我在目录中放置更多文件并从'0:10 开始运行时,循环失败并混淆文件中的向量。我认为这是因为我使用的模式
list.files(pattern=paste('.', x, '\\.txt', sep=''))
这仅查找具有'.',x,//txt.
因此,如果'.'=a
它x=1
找到了 file a1
。但我认为它在运行更多文件时a0
和运行时会感到困惑。a10
但我似乎找不到合适的循环来搜索那些也查找文件的文件,直到a999
和b999
,以及。
谁能提供更好的方法来做到这一点?下面的代码。
dostuff <- function(x)
{
files <- list.files(pattern=paste('.', x, '\\.txt', sep=''))
a <- read.table(files[1],header=FALSE) #file a0.txt
G <- a$V1-a$V2
b <- read.table(files[2],header=FALSE) #file b0.txt
as.factor(b$V2)
q <- tapply(b$V3,b$V2,Fun=length)
H <- b$V1-b$V2
model <- lm(G~H)
return(model$coefficients[2],q)
}
results <- sapply(0:10,dostuff)
Error in tapply(b$V3, b$V2, FUN = length) : arguments must have same length