1. ホーム
  2. r

[解決済み] Rでread.csvを使ってファイルではなく文字列の値から読み込む方法はありますか?

2023-05-25 21:55:56

質問

私は、RコードがJavaアプリケーションと対話するRパッケージを書いています。JavaアプリケーションはCSV形式の文字列を出力し、私はRコードが文字列を直接読み込んでdata.frameに変換できるようにしたいと思っています。

どのように解決するのですか?

7 年前の回答を編集しています。 今となっては、これは ずっと のおかげでよりシンプルになりました。 text= に追加された引数のおかげで read.csv() と同様です。

R> data <- read.csv(text="flim,flam
+ 1.2,2.2
+ 77.1,3.14")
R> data
  flim flam
1  1.2 2.20
2 77.1 3.14
R> 


のヘルプを見てください。 textConnection() -- のヘルプを見てください。 は非常に強力です。 の概念は、基本的にすべての読者が(例えば read.table() とその亜種) がこれらの 接続 オブジェクトにアクセスします。ファイルであったり、リモートのURLであったり、他のアプリから入ってくるパイプであったり、...あなたのケースのようにテキストであったりします。

同じトリックが、いわゆる「ここの文書」にも使われています。

> lines <- "
+ flim,flam
+ 1.2,2.2
+ 77.1,3.14
+ "
> con <- textConnection(lines)
> data <- read.csv(con)
> close(con)
> data
  flim flam
1  1.2 2.20
2 77.1 3.14
> 

なお、これは 単純 な作り方ですが、同時に コストがかかる がかかります。 JavaからRに移行する方法は他にもありますが、これで手っ取り早く進めることができるはずです。 次は効率化です...