Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rプログラミング02 「データ入出力編」デモ

249 views

Published on

スライド「Rプログラミング02 データ入出力編」のためのデモコード

Published in: Education
  • Be the first to comment

  • Be the first to like this

Rプログラミング02 「データ入出力編」デモ

  1. 1. ######################################################## # I. さまざまなデータの入力方法 ######################################################## #------------------------------------------------------- # A) コンソールでの直接入力 dat1 (cars データ)作成 #------------------------------------------------------- # スピード speed <- c(4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20, 22, 23, 24, 24, 24, 24, 25) # 制動距離 dist <- c(2, 10, 4, 22, 16, 10, 18, 26, 34, 17, 28, 14, 20, 24, 28, 26, 34, 34, 46, 26, 36, 60, 80, 20, 26, 54, 32, 40, 32, 40, 50, 42, 56, 76, 84, 36, 46, 68, 32, 48, 52, 56, 64, 66, 54, 70, 92, 93, 120, 85) # 行列にまとめる dat1 <- cbind(speed,dist) #------------------------------------------------------- # 脱線) R で嬉しいこと [A)の dat1 を使用] #------------------------------------------------------- plot(dat1) # 散布図描画 lm1 <- lm(dist~speed) # 回帰分析 summary(lm1) # 回帰分析結果表示 abline(lm1, col= "red") # 回帰線描画 summary(dat1) # データの基本統計量 str(lm1) # lm1 の内容確認 #------------------------------------------------------- # B) データエディタの利用 #------------------------------------------------------- # まず空のデータフレーム dat2 を作成 dat2 = data.frame() # コンソールのメニューを操作する場合は「編集」 => 「データエディタ」 # 同じ操作を以下のコマンドでできる fix(dat2) #------------------------------------------------------- # C) CSV ファイルの読み込み、その 1 #------------------------------------------------------- # 最もお手軽な方法 data1 <- read.csv(file.choose())
  2. 2. head(data1) # データの冒頭だけ表示 tail(data1) # データの末尾だけ表示 #------------------------------------------------------- # C) CSV ファイルの読み込み、その 2 #------------------------------------------------------- setwd("Y:/PCxxx") # 各個人の作業フォルダを指定する dat3 <- read.csv("cars2.csv", header=TRUE) # データにヘッダがない場合は header=FALSE を指定 head(dat3) # データの冒頭だけ表示 tail(dat3) # データの末尾だけ表示 #------------------------------------------------------- # D) 区切り文字のない固定長ファイルの読み込み #------------------------------------------------------- wt1 <- c(10, 8) # 各項目の桁数 cn1 <- c("speed", "dist") # 項目名 dat4 <- read.fwf("cars.txt", widths=cm1, col.names=cn1) head(dat4) # データの冒頭だけ表示 tail(dat4) # データの末尾だけ表示 #------------------------------------------------------- # E) 複数の csv ファイルをまとめて #------------------------------------------------------- #----------------------------- # E-5. まず 1 本読んでみる #----------------------------- setwd("Y:/PCxxx/giji") # 各個人の作業フォルダを指定する giji1 <- read.csv("GIJI_2004zensho_dataset(00001~05000).csv", header=FALSE) head(giji1) tail(giji1) #----------------------------- # E-8. まとめて #----------------------------- ##### EXCEL で作ったコンスタント表 code.csv の読み込み rm(list=ls(all=TRUE)) # 作業領域のお掃除 setwd("Y:/PCxxx/giji") # カレントディレクトリの指定 #%%%%# cd1 <- read.csv("code.csv", header=TRUE) tail(cd1) a1 <- which(!is.na(cd1$ren)) # コンスタントファイル末尾の cd1 <- cd1[a1,] # ブランク行削除
  3. 3. tail(cd1) # cd1 の末尾確認 # 因子属性への変換抑制フラグ作成 ft1 <- rep(TRUE, dim(cd1)[1]) ft1[which(cd1$type == 2)] <- FALSE # 命名規則を指定してデータファイル名の一覧を取得 (f.list <- list.files(path=getwd(), pattern="*).csv")) dt1 <- do.call("rbind", lapply(f.list, read.csv, col.names=cd1$namae, as.is=ft1, header=FALSE)) dim(dt1) # [1] 32027 197 ######################################################## # II. 出力の方法 ######################################################## #------------------------------------------------------- # A) ワークスペース全体の保存 #------------------------------------------------------- save.image("Kensyuu1") #------------------------------------------------------- # B) コード履歴の保存 #------------------------------------------------------- # メニューバーで操作します #------------------------------------------------------- # C) バイナリファイル #------------------------------------------------------- save(cd1, dt1, file="giji.rdata") # データレイアウト情報 cd1 とデータ dt1 を今後の利用のため # giji.Rdata として保存 #------------------------------------------------------- # D) CSV ファイル #------------------------------------------------------- #setwd("Y:/PCxxx/giji") # カレントディレクトリの指定 data(iris) # 5 変数 150 レコードのあやめデータをロード write.csv(iris, file="iris.csv") write.csv(iris, file="iris1.csv", quote=FALSE, row.names=FALSE) #########################################################

×