atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
R入門
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
R入門
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
R入門
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • R入門
  • 応用

R入門

応用

最終更新:2025年04月04日 21:19

r-intro

- view
管理者のみ編集可

目次

  • 目次
  • リダイレクトを使う
  • エクセルのファイル(.xlsx)の中身を読み込む
  • 旧エクセルのファイル(.xls)を読み込む
  • Excelの日付データをRの日付データに変換する
  • 最新版のパッケージがあるか否かを確認する
  • インストールしているパッケージを一括でアップデートする。
  • tibbleを使う

リダイレクトを使う

dplyrパッケージを使う。

> head(as.double(ts(UKDriverDeaths)))
[1] 1687 1508 1507 1385 1632 1511
> as.double(ts(UKDriverDeaths)) %>% head()
 as.double(ts(UKDriverDeaths)) %>% head() でエラー: 
   関数 "%>%" を見つけることができませんでした 
> library(dplyr)
> as.double(ts(UKDriverDeaths)) %>% head()
[1] 1687 1508 1507 1385 1632 1511
> head() %<% as.double(ts(UKDriverDeaths))
 head() %<% as.double(ts(UKDriverDeaths)) でエラー: 
   関数 "%<%" を見つけることができませんでした

エクセルのファイル(.xlsx)の中身を読み込む

openxlsxパッケージのread.xlsx関数を使う。以下は、以下のような値が入力されているdata.xlsxファイルをカレントフォルダーに置いた場合の動作例。

sheetオプションに読み込むシートの番号(連番)かシート名を指定する。デフォルトでは1行目をフィールド名として採用するため、不要な場合はcolNamesオプションをFALSEにする。デフォルトでは1行目から読み込むため、読み込みはじめの行を指定したい場合はstartRowオプションにその開始行を指定する。

読み込まれたものはデータフレームになる。

> library("openxlsx")
> read.xlsx("data.xlsx", sheet = 1)
  No   名前  体重
1 10    ABC 50.00
2 20 あいう 60.10
3 30 亜井宇 70.12
> read.xlsx("data.xlsx", sheet = "Sheet1")
  No   名前  体重
1 10    ABC 50.00
2 20 あいう 60.10
3 30 亜井宇 70.12
> read.xlsx("data.xlsx", sheet = "Sheet2")
 read.xlsx.default("data.xlsx", sheet = "Sheet2") でエラー: 
  Cannot find sheet named "Sheet2"
> read.xlsx("data.xlsx", sheet = 1, colNames = FALSE)
  X1     X2    X3
1 No   名前  体重
2 10    ABC    50
3 20 あいう  60.1
4 30 亜井宇 70.12
> read.xlsx("data.xlsx", sheet = 1, startRow = 2)
  10    ABC    50
1 20 あいう 60.10
2 30 亜井宇 70.12
> dtf <- read.xlsx("data.xlsx", sheet = 1)
> dtf
  No   名前  体重
1 10    ABC 50.00
2 20 あいう 60.10
3 30 亜井宇 70.12
> mean(dtf$体重)
[1] 60.07333

旧エクセルのファイル(.xls)を読み込む

readxlパッケージのread_xls関数を使う。readxlパッケージはその関数利用時にR以外のソフトウェアを必要としないため、パッケージをインストールすれば、そのまま使うことができる。よくネットで見かけるopenxlsxパッケージはxlsを扱うことはできない。

この関数の戻り値はtibble型。data.frame型とほぼ同じように扱うことができる。

以下のようなxlsファイルがあり、カレントディレクトリにsample.xlsというファイル名で保存した状態での動作例。オプションで特に指定をしなければ1行目をフィールド名として採用する。データが1行目から始まる場合はcol_namesオプションにFALSEを指定する。読み込ませる列(A~IV)を指定する場合はrangeにcell_colsを使用して指定する。各フィールドのデータ型は未指定では自動的にデータ型の類推(guess)がなされて決まるが、これを指定の型にしたい場合はcol_typesオプションに、ベクトルで順番に指定をする。

> library(readxl)
> tbl <- read_xls("sample.xls")
> tbl
# A tibble: 4 x 4
     no name  date                  age
  <dbl> <chr> <dttm>              <dbl>
1     1 A     2022-01-01 00:00:00    10
2     2 B     2022-02-02 00:00:00    20
3     3 C     2022-03-03 00:00:00    30
4     4 D     2022-05-05 00:00:00    40
> tbl <- read_xls("sample.xls", col_names = FALSE)
New names:
 * `` -> `...1`
 * `` -> `...2`
 * `` -> `...3`
 * `` -> `...4`
> tbl
# A tibble: 5 x 4
  ...1  ...2  ...3  ...4 
  <chr> <chr> <chr> <chr>
1 no    name  date  age  
2 1     A     44562 10   
3 2     B     44594 20   
4 3     C     44623 30   
5 4     D     44686 40   
> tbl <- read_xls("sample.xls", range = cell_cols("B:D"))
> tbl
# A tibble: 4 x 3
  name  date                  age
  <chr> <dttm>              <dbl>
1 A     2022-01-01 00:00:00    10
2 B     2022-02-02 00:00:00    20
3 C     2022-03-03 00:00:00    30
4 D     2022-05-05 00:00:00    40
> tbl <- read_xls("sample.xls", col_types = c("guess", "text", "text", "numeric"))
> tbl
# A tibble: 4 x 4
     no name  date    age
  <dbl> <chr> <chr> <dbl>
1     1 A     44562    10
2     2 B     44594    20
3     3 C     44623    30
4     4 D     44686    40
> tbl <- read_xls("sample.xls", col_types = c("guess", "text", "date", "numeric"))
> tbl
# A tibble: 4 x 4
     no name  date                  age
  <dbl> <chr> <dttm>              <dbl>
1     1 A     2022-01-01 00:00:00    10
2     2 B     2022-02-02 00:00:00    20
3     3 C     2022-03-03 00:00:00    30
4     4 D     2022-05-05 00:00:00    40

Excelの日付データをRの日付データに変換する

openxlsxパッケージなどを使ってExcelのファイルの日付データを読み込んだとき、日付データではなく数値データで読み込まれるときがある。これを読み込み元の日付相当の日付データに戻す場合は、as.Date関数にoriginオプションを付けて変換する。

Sheet1に以下のように入力したエクセルのファイルdata.xlsxを用意して試してみる。

> library(openxlsx)
> dtf <- read.xlsx("data.xlsx", colName = FALSE)
> dtf
     X1                X2
1 44562 ← 書式を「日付」
2 44562 ← 書式を「標準」
> mode(dtf$X1)
[1] "numeric"
> class(dtf$X1)
[1] "numeric"
> as.Date(dtf$X1, origin = "1899-12-30")
[1] "2022-01-01" "2022-01-01"

Excelの日付データは、内部では一連の連番で保存しており、Windows版は1900年1月1日を1とした連番で管理している。1900年1月2日は翌日のため2となり、1901年1月1日は366日後に当たるため367となる(1900年は閏年)。つまり、値として基準になる日は1899年12月31日である。一方、as.Date関数では以下のとおりにoriginオプションに指定した日を基準としている。

> as.Date(0, origin = "1900-01-01")
[1] "1900-01-01"

そのため、読み取った値をas.Date関数で変換するときは、originオプションに1899年12月30日を指定すること。

最新版のパッケージがあるか否かを確認する

old.packages関数を使う。アップデートできるパッケージがある場合は、それらが表示される。

> old.packages()

ここではバージョン番号を比較して表示しているだけであり、パッケージや環境によっては、あえてアップデートされない場合があるので注意。

あくまで表示されるだけで、実際にアップデートをする場合はupdate.packages関数を使う。

インストールしているパッケージを一括でアップデートする。

update.packages関数を使う。アップデートできるパッケージがある場合は、パッケージ1つごとに、アップデートするか否かの確認のダイアログが表示される。

> update.packages()

その環境で使用中(library関数で使用を宣言しているパッケージ)のパッケージはアップデートされないので注意。

tibbleを使う

tidyverseパッケージに含まれているため、このパッケージの使用を宣言すればよい。tibbleとはデータフレームを使いやすくしたようなもので、データフレームとほぼ同じように扱うことができる。

> library(tidyverse)
> n <- 1:3
> s <- c("A", "B", "C")
> d <- c(1.5, 2.5, 3.6)
> tbl <- tibble(n, s, d)
> tbl
# A tibble: 3 x 3
      n s         d
  <int> <chr> <dbl>
1     1 A       1.5
2     2 B       2.5
3     3 C       3.6
> tbl <- as_tibble(data.frame(n, s, d))
> tbl
# A tibble: 3 x 3
      n s         d
  <int> <chr> <dbl>
1     1 A       1.5
2     2 B       2.5
3     3 C       3.6
> tbl[2, 3]
# A tibble: 1 x 1
      d
  <dbl>
1   2.5
> tbl[1, ]
# A tibble: 1 x 3
      n s         d
  <int> <chr> <dbl>
1     1 A       1.5
> tbl[, 2]
# A tibble: 3 x 1
  s    
  <chr>
1 A    
2 B    
3 C

名前:
コメント:
「応用」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • exceldate.png
  • openxlsx.png
  • xls.png
R入門
記事メニュー

メニュー

  • トップページ
  • Rとは
  • Rを使ってみる
  • 画面出力と入力
  • 変数とオブジェクト
  • ベクトル
  • 演算子と制御構文
  • 数と式
  • 文字と文字列
  • 正規表現
  • 日付と時刻
  • データフレーム
  • tidyverse
  • リスト
  • ファイルの入出力
  • ファイル・ディレクトリ
  • 実行とデバッグ
  • 数学
  • 行列
  • 関数
  • 統計学
  • 統計解析
  • 数値計算
  • 応用
  • 時系列解析
  • 地理空間情報
  • Rの操作
  • データベース
  • パッケージ

  • 環境
  • インターネット
  • 作図
  • 画像

  • 本の計算を再現
  • セイバーメトリクス
  • その他


ここを編集
記事メニュー2

更新履歴

取得中です。

ここを編集
人気記事ランキング
  1. 正規表現
もっと見る
最近更新されたページ
  • 2日前

    リスト
  • 20日前

    行列
  • 23日前

    tidyverse
  • 60日前

    インターネット
  • 72日前

    日付と時刻
  • 72日前

    応用
  • 72日前

    文字と文字列
  • 89日前

    変数とオブジェクト
  • 132日前

    その他
  • 133日前

    画像
もっと見る
人気記事ランキング
  1. 正規表現
もっと見る
最近更新されたページ
  • 2日前

    リスト
  • 20日前

    行列
  • 23日前

    tidyverse
  • 60日前

    インターネット
  • 72日前

    日付と時刻
  • 72日前

    応用
  • 72日前

    文字と文字列
  • 89日前

    変数とオブジェクト
  • 132日前

    その他
  • 133日前

    画像
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. GTA5 MADTOWN(β)まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. SYNDUALITY Echo of Ada 攻略 ウィキ
  6. ガンダムGQuuuuuuX 乃木坂46部@wiki
  7. ドタバタ王子くん攻略サイト
  8. 星飼いの詩@ ウィキ
  9. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
  10. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. MadTown GTA (Beta) まとめウィキ
  6. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  7. 検索してはいけない言葉 @ ウィキ
  8. 発車メロディーwiki
  9. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. オレカバトル アプリ版 @ ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. anbrella(餡ブレラ) - ストグラ まとめ @ウィキ
  2. 参加者一覧 - ストグラ まとめ @ウィキ
  3. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  4. アルフォート ウェスカー - ストグラ まとめ @ウィキ
  5. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  6. ウシ(マリオカート) - アニヲタWiki(仮)
  7. Lycoris - MadTown GTA (Beta) まとめウィキ
  8. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  9. 千鳥の鬼レンチャン 挑戦者一覧 - 千鳥の鬼レンチャン サビだけカラオケデータベース
  10. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.