我在成对的文件上运行以下代码,如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
hasV1 V2
和b
has V1 V2 V3
。但是,当我在小批量文件上运行此错误时,不会出现此错误,0:3
并且这些结果的结果与我分别进行每次分析一样,手动清除整个代码运行之间的环境。
a1 b1
我相信一旦文件从toa10 b10
及以上运行,问题就会出现。因为我认为循环对选择哪些文件感到困惑。只要我运行a0 b0
to ,这个问题就会消失a9 b9
。
最佳解决方案?