読者です 読者をやめる 読者になる 読者になる

コピペでデータ読み込み

R

R で Excel などに入力されたちょっとしたデータを読み込む時、データ整形に結構手間がかかってめんどくさいと思っていましたが、
How to read space delimited data into a data frame from your script/document file? (Stack Overflow) ではコピペだけで実行できる方法が紹介されていました。

dat <- read.table(textConnection("person1    12    15
person2    15    18
person3    20    14"), stringsAsFactors=FALSE)
dat
> dat
       V1 V2 V3
1 person1 12 15
2 person2 15 18
3 person3 20 14

普通に header とかが使えた... (2011/09/16) 関数化

少し編集し、変数名入りのものでも使えるようにしてみました。

dat1 <- read.table(textConnection("
person1    12    15
person2    15    18
person3    20    14
"), stringsAsFactors = FALSE, header = FALSE)
dat1

dat2 <- read.table(textConnection("
name       x1    x2
person1    12    15
person2    15    18
person3    20    14
"), stringsAsFactors = FALSE, header = TRUE)
dat2
> dat1
       V1 V2 V3
1 person1 12 15
2 person2 15 18
3 person3 20 14

> dat2
     name x1 x2
1 person1 12 15
2 person2 15 18
3 person3 20 14


調べ切れていないだけで R base にこの機能入ってたりするのかな?

追記

クリップボードから直接読み込む方法です。
id:dichika さん、ありがとうございます。

read.delim("clipboard") #windonws
read.delim(pipe("pbpaste")) #Mac


Rcmdr で使用されているスクリプト

read.table(
  "clipboard", header = TRUE, sep = "",
  na.strings = "NA", dec=".", strip.white = TRUE
)