2015-11-04 99 views
1

我有一个名为“data”的变量,其中包含10个列表,我想将每个列表保存在不同的文件中(使用不同的名称)。 我知道如何保存单个文件,但不知道如何通过循环编写代码。我最大的问题是文件的名称。R保存具有不同名称的多个文件

我想用这些名字文件的文件夹:percentage0.01.bed,percentage0.02.bed ...)

我想是这样的:

percentages<-seq(0.01,0.1,0.01) 
>percentages 
[1] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 
sapply(seq(length(data),function(x) write.table(data[x], sep= " ", col.names=F, "/home//Desktop/percentage"+toString(cv[x])) 

但它不起作用...

+0

请让你的例子可重现。我认为你的问题在路径中,字符串连接不能像R那样工作。你可以使用'paste'或'sprintf'。 – Heroka

+0

有几个问题(例如在'length(data)'后面缺少'''')。尝试'data < - replicate(2,data.frame(x = runif(5),y = runif(5)),simplify = FALSE);百分比< - 1:长度(数据); sapply(seq(length(data)),function(x)write.table(data [[x]],sep =“”,col.names = F,file = paste0(“percentage”,percentages [x],“ .bed“)))'。 – lukeA

回答

2

我想你可能在这里使用for循环做得更好。尝试:

mypath <- "/home//Desktop/percentage/" 

for (i in 1:length(percentages)) { 
    write.table(percentages[i], 
    file = paste0(mypath, paste("percentage", i, "bed", sep = "."))) 
} 

请注意,我无法调试此部分指定您所需的路径。我在我的机器上尝试了一个版本,它运行良好。但一定要包括最后/

0

从包含文本的数据框中保存具有不同名称的多个文件。

for(i in 1:nrow(df)){ 
myfile<-paste0("file", "_", i, ".txt") 
write.table(df[i,1],myfile,sep="\t",row.names=FALSE) 
} 
相关问题