2015-11-04 96 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) 
} 
相關問題