Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R循环在第一次运行后退出_R - Fatal编程技术网

R循环在第一次运行后退出

R循环在第一次运行后退出,r,R,嘿嘿, 我有一个循环,我想运行它来根据一个条件在多个表中分隔一个文件。基本上,我采用在psms表中找到的每个唯一文件名,并将这些行分隔为单独的文件 writeCSVTables <- function(files, psms){ for(i in length(files)){ name <- tools::file_path_sans_ext(files[i]) write.table(psms[grep(name, psms$file), c("accession",

嘿嘿,

我有一个循环,我想运行它来根据一个条件在多个表中分隔一个文件。基本上,我采用在psms表中找到的每个唯一文件名,并将这些行分隔为单独的文件

writeCSVTables <- function(files, psms){

for(i in length(files)){    
name <- tools::file_path_sans_ext(files[i])
write.table(psms[grep(name, psms$file), c("accession", "sequence", "peptide",
                                          "modif", "fixed", "file", "spectrum")],
            paste(name,".corr.csv", sep =""), sep ="\t", row.names = FALSE, quote = FALSE)
 }
}
writeCSVTables试试看

[...]
for(i in seq(length(files))){    
[...]

解释 (长度为i(文件))的符号
表示变量
i
将以迭代方式假定它旁边的向量中的所有值<代码>长度(文件)
是单个值,因此它只运行一次,然后退出。按设计工作

您可能想要的是
for(i in seq(length(files))
。这里,
i
迭代地假定
seq(长度(文件))
(即
1
2
3
,…,
长度(文件)
)中的每个值


其他解决方案也可以更好地利用矢量化。

试试看

[...]
for(i in seq(length(files))){    
[...]

解释 (长度为i(文件))的符号
表示变量
i
将以迭代方式假定它旁边的向量中的所有值<代码>长度(文件)是单个值,因此它只运行一次,然后退出。按设计工作

您可能想要的是
for(i in seq(length(files))
。这里,
i
迭代地假定
seq(长度(文件))
(即
1
2
3
,…,
长度(文件)
)中的每个值


其他解决方案也可以更好地利用矢量化。

如果
长度(文件)
为2,则在唯一元素为2的1元素向量上进行for循环

无论如何,为什么要使用索引呢?直接在文件名上循环

替换

for(i in length(files)){    
name <- tools::file_path_sans_ext(files[i])
用于(长度为i(文件)){
name如果
length(files)
为2,则在唯一元素为2的1元素向量上进行for循环

无论如何--为什么要使用索引呢?直接循环文件名就行了

替换

for(i in length(files)){    
name <- tools::file_path_sans_ext(files[i])
用于(长度为i(文件)){
名称