「Rにデータを入力する」の編集履歴(バックアップ)一覧はこちら

Rにデータを入力する」(2006/06/04 (日) 21:10:19) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#contents **ごく少ないデータの場合 データを取りまとめるc()を使う。括弧の中に、コンマで区切ってデータを入れればいい。たとえばこんな感じ。 >x <- c(155,160,170) **ある程度大きなデータをキー入力する場合 普通はエクセルなどの表計算ソフトをつかってデータ入力はすませ、そのファイルを読み込むのが定石である(なぜ定石かといえば、データを別ファイルに保存することができるからである)。別にエクセルなど使わなくても、テキストエディタでタブ区切りのデータを作っておいても良い。 (邪道だが)下のような関数をつくっておくと、エクセルなど表計算ソフトや余計なファイルを用意しなくても済む(なぜ邪道かといえば、入力が終わるまで他の作業(セーブを含む)ができず、万が一コンピュータがコケてしまうと、データが消えてなくなるからである)。 >inputedit <- function(n){ >x <- edit(matrix(rep(0,n*n),nrow=n)) >return(x)} データの列数と行数をnで与えてやると、n×nの表が現われる。 >inputedit(10) 使い方はこんな感じ。これだと10×10の表が現われる。 >x <- inputedit(10) とタイプすると、表計算のような画面が現われるので、ガシガシそこに打ち込んでいけばいい。この場合だと、行列データが変数xに入る。 出てくる表で、データ入力や変更だけでなく、変数名や変数型も変更できる。変えたいところをクリックすればいい。 **エクセルなどの既存ファイルからデータをコピペする場合 1列(または1行)のデータを入力するだけなら、エクセルの上で(テキストエディタでもかまわない)コピーしてから、 >x<-scan() でokである。macの場合は終了を教えてやるために最後は改行を2回入れる。これで変数xにコピペしたデータが入る。 このやり方は、タブ区切りデータでもリターン区切りデータでも使える最も簡易な方法である。 行列になった複数の系列のデータを、コピペする時は、それようの簡単な関数を作っておくと便利。列数を指定できるので、行列の形に整えてくれる。 Windows の場合は次のような関数になる。 >excel.w <- function(nc){ >matrix(scan("clipboard"), byrow=TRUE,ncol=nc) >} まず、Excelの表を開き、その上で必要なデータ範囲をコピーする。 次に、今作ったexcel.w 関数を使う。引数は,列数を表す数値である。たとえば4列のデータを読み込む場合は、下のような感じである。 >x <- excel.w(4) Macintosh の場合も次のような関数をつくっておくといい。少し使い勝手が違うが、 >excel <- function(nc){ >matrix(scan(""), byrow=TRUE, ncol=nc) >} まず、同じくExcelの表を開き,その上で必要なデータ範囲をコピーする。 次に今作ったexcel関数を使う。引数は、列数を表す数値である。たとえば4列のデータを読み込む場合は、下のような感じである。 >x <- excel(4) データ入力プロンプトが出たら、ペーストする。 Macの場合mデータが読みとられても、さらなるプロンプトが出るので、データの終わりを示すために >command + . の後、リターンキーを押す。これでOK。 **エクセルなどの既存ファイルからデータを読み込む場合(csvファイルの場合など) エクセルなどのファイルがあり、データ量も結構ある場合は、ファイルを読み込ませるといい。 簡単なやり方では、まずエクセルで必要なファイルを開き、csv形式でセーブしなおす。これでread.csv()という関数で読み込むことができる。read.csv()の括弧の中には""でくくったファイル名(ディレクトリ)を入れる。 >x <- read.csv("D:/hoge/hoge.csv") これで変数xにデータフレーム型のデータが入る。 ファイルはネット上にあってもかまわない。Web上のデータをそのまま読み込むには、 >x <- read.csv("http://plaza.umin.ac.jp/~takeshou/R/dat/data01.csv") とURL込みでファイルを指定してやればいい。 タブ区切りのデータファイル場合には、read.delim()を使う。 >x <- read.delim("D:/hoge/hoge.dat") 注意として、1行目に変数名が入っていない場合はread.csv、read.delimともに『header=F』という項目を追加しないといけない。例えばこんな風に。 >x <- read.csv("D:/hoge/hoge.csv", header=F) なお『header=F』は『h=F』と省略することもできる。 **SPSSやSASなど他の統計ソフトのデータをRに読み込ませる場合
#contents **ごく少ないデータの場合 データを取りまとめるc()を使う。括弧の中に、コンマで区切ってデータを入れればいい。たとえばこんな感じ。 >x <- c(155,160,170) **エクセルなどの既存ファイルからデータをコピペする場合 1列(または1行)のデータを入力するだけなら、エクセルの上で(テキストエディタでもかまわない)コピーしてから、 >x<-scan() でリターン・キーを押すと、入力待ち状態になるから、そこにペーストしてやればokである。 macの場合は終了を教えてやるために最後は改行を2回入れる。これで変数xにコピペしたデータが入る。 このやり方は、タブ区切りデータでもリターン区切りデータでも使える最も簡易な方法である。 行列になった複数の系列のデータを、コピペする時は、そのため用に簡単な関数を作っておくと便利。列数を指定できるので、行列の形に整えてくれる(以下は青木)。 Windows の場合は次のような関数になる。 >excel.w <- function(nc){ >matrix(scan("clipboard"), byrow=TRUE,ncol=nc) >} まず、Excelの表を開き、その上で必要なデータ範囲をコピーする。 次に、今作ったexcel.w 関数を使う。引数は,列数を表す数値である。たとえば4列のデータを読み込む場合は、下のような感じである。 >x <- excel.w(4) Macintosh の場合も次のような関数をつくっておくといい。少し使い勝手が違うが、 >excel <- function(nc){ >matrix(scan(""), byrow=TRUE, ncol=nc) >} まず、同じくExcelの表を開き,その上で必要なデータ範囲をコピーする。 次に今作ったexcel関数を使う。引数は、列数を表す数値である。たとえば4列のデータを読み込む場合は、下のような感じである。 >x <- excel(4) データ入力プロンプトが出たら、ペーストする。 Macの場合mデータが読みとられても、さらなるプロンプトが出るので、データの終わりを示すために >command + . の後、リターンキーを押す。これでOK。 **エクセルなどの既存ファイルからデータを読み込む場合(csvファイルの場合など) エクセルなどのファイルがあり、データ量も結構ある場合は、ファイルを読み込ませるといい。 簡単なやり方では、まずエクセルで必要なファイルを開き、csv形式でセーブしなおす。これでread.csv()という関数で読み込むことができる。read.csv()の括弧の中には""でくくったファイル名(ディレクトリ)を入れる。 >x <- read.csv("D:/hoge/hoge.csv") これで変数xにデータフレーム型のデータが入る。 ファイルはネット上にあってもかまわない。Web上のデータをそのまま読み込むには、 >x <- read.csv("http://plaza.umin.ac.jp/~takeshou/R/dat/data01.csv") とURL込みでファイルを指定してやればいい。 タブ区切りのデータファイル場合には、read.delim()を使う。 >x <- read.delim("D:/hoge/hoge.dat") 注意として、1行目に変数名が入っていない場合はread.csv、read.delimともに『header=F』という項目を追加しないといけない。例えばこんな風に。 >x <- read.csv("D:/hoge/hoge.csv", header=F) なお『header=F』は『h=F』と省略することもできる。 **ある程度大きなデータをキー入力する場合 普通はエクセルなどの表計算ソフトをつかってデータ入力はすませ、そのファイルを読み込むのが定石である(なぜ定石かといえば、データを別ファイルに保存することができるからである)。別にエクセルなど使わなくても、テキストエディタでタブ区切りのデータを作っておいても良い。 (邪道だが)下のような関数をつくっておくと、エクセルなど表計算ソフトや余計なファイルを用意しなくても済む(なぜ邪道かといえば、入力が終わるまで他の作業(セーブを含む)ができず、万が一コンピュータがコケてしまうと、データが消えてなくなるからである)。 >inputedit <- function(n){ >x <- edit(matrix(rep(0,n*n),nrow=n)) >return(x)} データの列数と行数をnで与えてやると、n×nの表が現われる。 >inputedit(10) 使い方はこんな感じ。これだと10×10の表が現われる。 >x <- inputedit(10) とタイプすると、表計算のような画面が現われるので、ガシガシそこに打ち込んでいけばいい。この場合だと、行列データが変数xに入る。 出てくる表で、データ入力や変更だけでなく、変数名や変数型も変更できる。変えたいところをクリックすればいい。 **SPSSやSASなど他の統計ソフトのデータをRに読み込ませる場合 ほかの統計ソフトのデータを読み込むための関数は、“foreign”というパッケージにまとめられている。たとえばSPSSのデータ・ファイルをRに読み込ませるには、library()をつかって、 >library(foreign) >read.spss("D:/hoge/soc.sav",to.data.frame=TRUE) ->soc soc.savというSPSSのデータファイルを、データ・フレーム形式で読み込み、socという変数に入れるのには上のようにする。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー