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 )