トップページ -> 実践知識 -> R を用いた統計処理/データマイニング -> R でのエクセルファイル,バイナリファイル読み出しと書き込み
[サイトマップへ], サイト内検索:

R でのエクセルファイル,バイナリファイル読み出しと書き込み

サイト構成 連絡先,業績 実践知識 コンピュータ 教材 サポートページ

Excel ファイルの読み出しと書き込み

xlsReadWrite パッケージを使う

(前準備)xlsReadWrite パッケージのインストール

「R のパッケージのインストール」の Web ページの記述に従い,xlsReadWrite パッケージのインストールを行う.

  1. chooseCRANmirror()

    ミラーサイトを選択するウインドウが現れる. 日本国内が良いので Japan (Tsukuba) を選ぶ.

  2. utils:::menuInstallPkgs()

    xlsReadWrite を選択すると,ダウンロードされる.

  3. library(xlsReadWrite)

    R 処理系に読み込まれる.

(参考)xlsReadWrite パッケージのヘルプ (Help)

Help pages for package ‘xlsReadWrite’ version 1.3.2

Natively read and write Excel files

エクセルファイル書き込みの例

write.xls() 関数を使い,エクセルファイル書き込みを行う.

library(xlsReadWrite)

d <- data.frame( type = c(1:6),
name = c("apple", "orange", "strawberry", "watermelon", "melon", "banana"),
price = c(50, 20, 100, 150, 200, 100) )

d

write.xls( d, file="C:/data.xls" )

エクセルファイル読み出しの例

read.xls() 関数を使い,エクセルファイル読み出しを行う.

b <- write.xls( d, file="C:/data.xls" )

日本語も特に問題なし.


バイナリファイルの読み出し

バイナリファイルの読み出しは,readBin() 関数を使って簡単に行えます. ここでは,4バイトの浮動小数データが並んだバイナリファイルの例を示す.

バイナリファイル作成用のプログラム

バイナリファイルの作成は writeBin() 関数を使って簡単に行えるのですが,ここでは「他のアプリが作ったバイナリファイルが読み出せるか」を確認したいので,C 言語で バイナリファイルを作成します.

#include<stdio.h>

int write_param(float *total_u_x, float *total_u_y, unsigned short int width, unsigned short int height, char *filename){
	int i,j;
	FILE *fp;
	fp=fopen(filename,"wb");
	if(fp==NULL)return 0;
	fwrite(&width, sizeof(unsigned int), 1, fp);
	fwrite(&height, sizeof(unsigned int), 1, fp);
	for(j=0;j<height;j++){
		fwrite(&total_u_x[j*width+0], sizeof(float), width, fp);
	}
	for(j=0;j<height;j++){
		fwrite(&total_u_y[j*width+0], sizeof(float), width, fp);
	}
	printf("write parameter file.\n");
	fclose(fp);
	return 0;
}

void main(){
	int width=2;
	int height=2;
	float* ux=new float[width*height];
	float* uy=new float[width*height];

	for(int i=0;i<width*height;i++){
		ux[i]=i*0.1;
		uy[i]=i*0.01;
	}
	write_param(ux,uy,width,height,"test.bin");

}

出来たバイナリファイル

出来たファイルは,test.bin

ファイルの中身は次の通り.

バイナリファイルの読み出し,簡単な計算とグラフ表示の例

conn <- file("C:/R/R-2.8.0/test.bin", "rb")
width <- readBin(conn, what=integer(), n = 1)
height <- readBin(conn, what=integer(), n = 1)
vx <- readBin(conn, what=double(), n = width * height, size = 4)
vy <- readBin(conn, what=double(), n = width * height, size = 4)
close( conn )
vx
vy

【読み出しの例】

【計算とグラフ表示の例】

【出来たグラフ】

バイナリファイルの書き込み

writeBin() 関数を使う.書き込むオブジェクトはベクトルデータである必要があることに注意.