2016-09-16 121 views
0

我用下面的代碼:更改保存的文件名[R

lst <- split(data, cut(data$Pos, breaks = maxima, include.lowest = TRUE)) 
dir <- getwd() 
lapply(seq_len(length(lst)), 
     function (i) write.csv(lst[[i]], file = paste0(dir,"/",names(lst[i]), ".csv"), row.names = FALSE)) ## split data into .csv files based on max.csvima values 

另一個用戶使用提供了我,分裂和保存數據集中到單獨的.csv文件。但是,當保存文件時,它們將以命名格式保存,如下所示:[0,9],(9,19)等,我正在使用的分析程序無法讀入。如何更改文件名他們被保存爲?我假定它是

names(lst[i]) 

部,但是當我改變了(例如,與VEC是數字的與相同的長度的矢量的名字(VEC [I])數據文件的數量),沒有創建數據文件。

任何幫助表示讚賞!

+0

你最終想要的文件名是?你可以用'paste0(dir,/ split_dataset _「,[i],」.csv「)等替換'paste0(dir,」/「,names(lst [i])' – desc

+1

這些是由'cut'創建的默認標籤,因爲您沒有提供任何標籤。由於您基於該因素進行分割,因此列表元素將由'cut' – rawr

+0

@desc中創建的唯一值命名,這樣做會給出我錯誤:Error:['in: 「lapply(seq_len(length(lst)), function(i)write.csv(lst [[i]],file = paste0(dir,」/ split_dataset_「 ,[「 – GeorgeSBF

回答

0

@desc提供了答案,你只需要更改您的代碼

評論
lst <- split(data, cut(data$Pos, breaks = maxima, include.lowest = TRUE)) 
dir <- getwd() 
lapply(seq_len(length(lst)), 
    function (i) write.csv(lst[[i]], file = paste0(dir,"/your_desired_label_here",names(lst[i]), ".csv"), row.names = FALSE)) ## split data into .csv files based on max.csvima values 
+0

我試圖將文件導入到的程序不接受括號或文件名中的括號,因此此解決方案不起作用文件名仍然會包含這些字符。有沒有辦法修改原始剪切代碼改變命名格式? – GeorgeSBF

+0

@GeorgeSBF,你能提供一個簡要的數據例子,你想達到什麼目的,所以我可以更新代碼? – user2380782