2016-09-06 11 views
2

私は2つのデータフレームを持つリストを持っています。私はリストをループし、各データフレームのCSVを書き、データフレーム名の後に名前を付けたいと思います。データフレームのリストから複数のCSVファイルを書き込むにはどうすればよいですか?

library(ggplot2) 
myList <- list(diamonds, cars) 
for(i in mylist){ 
    write.csv(df, paste0(names(myList[i]),".csv")) 
} 

しかし、これだけ出力1 CSVファイル名carsからのデータと.csv

これを修正するにはdiamonds.csvcars.csvの2つのCSVがそれぞれ正しいデータを持っていますか?

+0

ちなみに、一般的に良いアイデアは、独自のあなたの例では、再現性にします。この場合、ダイヤモンドが基底Rにないために破損します。コードに 'library(whatever_package)'行を追加して修正することができます。 – Frank

+1

@Frankまたはちょうど 'data(" diamonds "、package =" ggplot2 ")' –

答えて

9

いくつかのものがあります。

  1. myList実際に名前を付けているわけではありません。
  2. あなたがmyList名前を与えたら、あなたはあなたのforループでdfを使用していますが、それはどこにも定義されていないリスト
  3. に沿ってより名称に沿ってインデックスへのより良いだろう。

これは動作するはずです(未テスト)

myList <- list(diamonds = diamonds, 
       cars = cars) 
for(i in names(mylist)){ 
    write.csv(myList[[i]], paste0(i,".csv")) 
} 
3

はまたmapplyを使用することができます。

myList <- list(diamonds = diamonds, 
       cars = cars) 
mapply(write.csv, myList, file=paste0(names(myList), '.csv')) 
関連する問題