如何解决For循环可在一个文件夹中处理多个csv,并保存新的已处理csvs文件
我正在尝试批处理一个文件夹中包含的40个csv文件,并根据其空间位置计算邻居信息。我使用for循环将代码应用于所有csv文件,但最终以某种方式最终仅获得1个输出文件。我想为每个输入csv文件提供一个不同的输出文件文件。我尝试了以下代码无济于事。任何建议将不胜感激!
### INPUT DATA
csv_file_path <- "~/Google Drive/Projects/Projects_MME/Projects/4_EnzColSpa/Microscopy- SingleCell/Out-Ilastik/Cell-Lists_all/"
csv_folder_name <- "TrackList"
# set working directory
Files <- list.files(paste0(csv_file_path,csv_folder_name),pattern = ".csv")
for (f in Files) {
# for each csv file
# import tracklist input
csv <- read.delim(file=f,header=TRUE,sep=",",as.is = F)
# 10 neighbours selected
n_neighbors <- 10
{
# make matrix of coordinates
mat <- as.matrix(csv[,3:4])
rownames(mat) <- csv$trackId
# compute [euclidian] distances
dmat <- as.matrix(dist(mat))
# find neighbors (by name)
nei_mat <- apply(dmat,1,function(crow) {names(sort(crow))[seq_len(n_neighbors+1)]})[-1,]
# match names to initial data frame to make matrix of growth
ref_growth_mat <- matrix(csv$growth_rate_column,dimnames=list(csv$trackId))
growth_mat <- matrix(ref_growth_mat[nei_mat,],nrow = n_neighbors)
colnames(growth_mat) <- csv$trackId
# done
growth_mat
# done,transpose and export
growth_matcol <- t(growth_mat)
}
{ #export
#write.table(growth_matcol,"growth_matcol.csv",sep = ",col.names = T,append = T)
write.table(growth_matcol,paste0(csv_file_path,csv_folder_name,"growth_matcol.csv"),append = T)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。