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_入出力編2016

147 views

Published on

演習用のデモコードです。

Published in: Education
  • Be the first to like this

Rデモ02_入出力編2016

  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) # 散布図描画 summary(dat1) # データの基本統計量 lm1 <- lm(dist~speed) # 回帰分析 summary(lm1) # 回帰分析結果表示 abline(lm1, col= "red") # 回帰線描画 str(lm1) # lm1 の内容確認 #------------------------------------------------------- # B) データエディタの利用 #------------------------------------------------------- # まず空のデータフレーム dat2 を作成 dat2 <- data.frame() # コンソールのメニューを操作する場合は「編集」 => 「データエディタ」 # 同じ操作を以下のコマンドでできる fix(dat2) #------------------------------------------------------- # C) CSV ファイルの読み込み、その 1 #-------------------------------------------------------
  2. 2. # 最もお手軽な方法 data1 <- read.csv(file.choose()) head(data1) # データの冒頭だけ表示 tail(data1) # データの末尾だけ表示 # 使用データ cars.csv # 以下の部分をテキストエディタに貼り、cars.csv として保存する speed,dist 4,2 4,10 7,4 7,22 8,16 9,10 10,18 10,26 10,34 11,17 11,28 12,14 12,20 12,24 12,28 13,26 13,34 13,34 13,46 14,26 14,36 14,60 14,80 15,20 15,26 15,54 16,32 16,40 17,32 17,40 17,50 18,42 18,56 18,76 18,84
  3. 3. 19,36 19,46 19,68 20,32 20,48 20,52 20,56 20,64 22,66 23,54 24,70 24,92 24,93 24,120 25,85 #------------------------------------------------------- # C) CSV ファイルの読み込み、その 2 #------------------------------------------------------- setwd("C:/Rdemo") # 読みたいファイルを置いたディレクトリを指定する dat3 <- read.csv("cars2.csv", header=TRUE) # データにヘッダがない場合は header=FALSE を指定 head(dat3) # データの冒頭だけ表示 tail(dat3) # データの末尾だけ表示 # 使用データ cars2.csv # 以下の部分をテキストエディタに貼り、cars2.csv として保存する # テキストエディタ上では、先の cars.csv との差異は明らかだが、EXCEL で開く # 場合には同じにみえてしまう speed,dist, 4,2 4,10 7,4 7,22 8,16 9,10 10,18 10,26 10,34 11,17 11,28 12,14
  4. 4. 12,20 12,24 12,28 13,26 13,34 13,34 13,46 14,26 14,36 14,60 14,80 15,20 15,26 15,54 16,32 16,40 17,32 17,40 17,50 18,42 18,56 18,76 18,84 19,36 19,46 19,68 20,32 20,48 20,52 20,56 20,64 22,66 23,54 24,70 24,92 24,93 24,120 25,85, ,,,,, ,,,,, #------------------------------------------------------- # D) 区切り文字のない固定長ファイルの読み込み #-------------------------------------------------------
  5. 5. wt1 <- c(10, 8) # 各項目の桁数 cn1 <- c("speed", "dist") # 項目名 dat4 <- read.fwf("cars.txt", widths=wt1, col.names=cn1) head(dat4) # データの冒頭だけ表示 tail(dat4) # データの末尾だけ表示 # 使用データ cars.txt # 以下の部分をテキストエディタに貼り、cars.txt として保存する 4 2 4 10 7 4 7 22 8 16 9 10 10 18 10 26 10 34 11 17 11 28 12 14 12 20 12 24 12 28 13 26 13 34 13 34 13 46 14 26 14 36 14 60 14 80 15 20 15 26 15 54 16 32 16 40 17 32 17 40 17 50 18 42 18 56 18 76
  6. 6. 18 84 19 36 19 46 19 68 20 32 20 48 20 52 20 56 20 64 22 66 23 54 24 70 24 92 24 93 24 120 25 85 #------------------------------------------------------- # E) 複数の csv ファイルをまとめて #------------------------------------------------------- # 事前準備 #----------------------------- # 例えば、各人の作業フォルダを「Y:/PC123/」として、その下にサブフォルダ「giji」、 # さらにその下にデータファイルを置く「data」フォルダを置く。 # つまり、「Y:/PC123/giji/data/」という構成にして、data の下には大元の擬似ミクロ # データ関連ファイル、giji の下には新たに作成したファイル類を置く #----------------------------- # E-5. まず 1 本読んでみる #----------------------------- setwd("Y:/PC123/giji/data") # ※ 「PC123」の部分は各人の作業フォルダを指定する #要修正%%% giji1 <- read.csv("GIJI_2004zensho_dataset(00001~05000).csv", header=FALSE) head(giji1) tail(giji1) #----------------------------- # E-8. まとめて #----------------------------- ##### EXCEL で作ったコンスタント表 code.csv は、giji フォルダに置く rm(list=ls(all=TRUE)) # 作業領域のお掃除 cd1 <- read.csv("Y:/PC123/giji/code.csv", header=TRUE) #要修正%%% tail(cd1) a1 <- which(!is.na(cd1$ren)) # コンスタントファイル末尾の
  7. 7. cd1 <- cd1[a1,] # ブランク行削除 tail(cd1) # cd1 の末尾確認 # 因子属性への変換抑制フラグ作成 (ただし、データに数字以外の文字列があれば因子化は抑制されない) ft1 <- rep(TRUE, dim(cd1)[1]) ft1[which(cd1$type == 2)] <- FALSE # 命名規則を指定してデータファイル名の一覧を取得 setwd("Y:/PC123/giji/data") # カレントディレクトリを擬似ミクロデータがある場所に指定 #要修正%%% (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) バイナリファイル #------------------------------------------------------- setwd("Y:/PC123/giji/") #要修正%%% save(cd1, dt1, file="giji.rdata") # データレイアウト情報 cd1 とデータ dt1 を giji.Rdata として保存 # 第三部でも使用するので、必ずこのファイルを作成し、保存してください。 #------------------------------------------------------- # D) CSV ファイル #------------------------------------------------------- #setwd("Y:/PC123/giji") # 必要に応じて保存したいディレクトリを指定 data(iris)# 5 変数 150 レコードのあやめデータをロード write.csv(iris, file="iris.csv") write.csv(iris, file="iris1.csv", quote=FALSE, row.names=FALSE) ###########################################

×