0
我运行下面的代码比对文件像a1.txt and b1.txt
,a2.txt and b2.txt
,... a999.txt and b999.txt
:重复向量名
dostuff <- function(x)
{
files <- list.files(pattern=paste('.', x, '\\.txt', sep=''))
a <- read.table(files[1],header=FALSE) #file a1.txt
G <- a$V1-a$V2
b <- read.table(files[2],header=FALSE) #file b1.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:999,dostuff)
Error in tapply(b$V3, b$V2, FUN = length) : arguments must have same length
这我想是因为在对两个文件都没有头所以a
有和b
有V1 V2 V3
。 但是,当我通过0:3
这样的小批量文件运行这个错误时,并没有出现这个错误,并且这些结果与我分别进行每次分析时的结果相同,因此需要手动清除整个代码的运行之间的环境。
我认为一旦文件从a1 b1
运行到a10 b10
及以上,就会出现问题。因为我认为循环会迷惑哪些文件选择。只要我运行a0 b0
到a9 b9
,此问题就会消失。
最佳解决方案?
谢谢feff我发现问题,但不知道如何纠正它,也许你可以帮助。只要文件'a0.txt''b0.txt'运行到'a9.txt''b9.txt',循环就可以正常运行。但是,如果我去“a10”和“b10”,那么它会变得困惑。 – user1320502 2012-04-13 19:12:39
不知道在没有更多细节的情况下会出现什么问题。这些文件是否存在?或者格式正确?我真的没有任何信息可以帮助到这里。 – 2012-04-13 19:41:00