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

更新履歴

取得中です。

ここを編集
最近更新されたページ
  • 14日前

    データフレーム
  • 17日前

    リスト
  • 41日前

    行列
  • 44日前

    tidyverse
  • 81日前

    インターネット
  • 93日前

    日付と時刻
  • 93日前

    応用
  • 93日前

    文字と文字列
  • 109日前

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

    その他
もっと見る
最近更新されたページ
  • 14日前

    データフレーム
  • 17日前

    リスト
  • 41日前

    行列
  • 44日前

    tidyverse
  • 81日前

    インターネット
  • 93日前

    日付と時刻
  • 93日前

    応用
  • 93日前

    文字と文字列
  • 109日前

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

    その他
もっと見る
ウィキ募集バナー
新規Wikiランキング

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

  1. MadTown GTA (Beta) まとめウィキ
  2. R.E.P.O. 日本語解説Wiki
  3. シュガードール情報まとめウィキ
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. SYNDUALITY Echo of Ada 攻略 ウィキ
  6. ソードランページ @ 非公式wiki
  7. 星飼いの詩@ ウィキ
  8. ドラゴンボール Sparking! ZERO 攻略Wiki
  9. GTA5 MADTOWN(β)まとめウィキ
  10. シミュグラ2 @ ウィキ
もっと見る
人気Wikiランキング

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

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

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

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  3. 金 - アニヲタWiki(仮)
  4. 868 - ストグラ まとめ @ウィキ
  5. シャア専用ヅダ - アニヲタWiki(仮)
  6. ジロリアンコピペ - ラーメン二郎 wiki
  7. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  8. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  9. ロスサントス警察 - ストグラ まとめ @ウィキ
  10. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
もっと見る

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

2019 AtWiki, Inc.