RStudioにおけるパッケージインストール時に発生するエラーの対処
目次
はじめに
RStudioに初めて手を出したので自分用に整理する意味も込めて、メモ程度に残してみようと思います。Qiitaの投稿自体も初めてなので、稚拙な文章になっているかとは思いますが、ご容赦ください。
エラーメッセージ
私の場合、この方のように‘Rtool’ is not available
と以下のようなメッセージがコンソールに表示されました。
Errors in Rtool installations
R package or namespace load failed for ‘dplyr’ in get(Info[i, 1], envir = env)
また、Sys.getenv("R_LIBS_USER")
で値を表示してみると、 以下の日本語部分が文字化けしてしまいました。
"C:\\Users\\user_name\\Documents\\R言語\\R練習"
原因
どうやら、Rtools
がインストールされていなかったのと、文字化けしたということで、文字コードの選択が問題だったようです。
対処
Rtoolsのインストール
こちらのサイトから、 rtools40-x86 64.exe
をダウンロードして、作業ディレクトリにインストールしました。
Using Rtools40 on Windows
文字コードの変更
メニューの選択画面のTools
のGlobal Options
から、文字コードをUTF-8
に設定しました。
(2020/7/26追記)
また, 日本語ディレクトリ名自体が文字化けの原因になっていると考えて、ディレクトリ名もアルファベット表記に変更しました。
再起動
その後、Ctrl
+Shift
+F11
によって、RStudioを再起動しました。
パッケージのインストールと動作確認
再度、install.packages
でパッケージをインストールしてみると、エラーメッセージが消えました。
そこで、library()
でパッケージを有効可すると、filter()
やselect()
などが使えるようになりました。
library(dplyr)
#名簿とスコア
data1.list <- c("山田","佐藤","西田","高橋","北野")
data2.list <- c("宮本","櫛田","原本","案田","倉野")
#data.frame(a,b,c) = (氏名,数学の得点, 英語の得点)
name1 <- data.frame(
data1=data1.list,
math_score=c(50,60,70,80,90),
eng_score=c(95,85,75,65,55))
name1
name2 <- data.frame(
data2=data2.list,
math_score=c(45,55,68,93,80),
eng_score=c(99,84,57,43,86))
name2
#数学のスコアが70より高い,かつ英語のスコアが60より高い
filter(name1,math_score > 70, eng_score > 60)
filter(name2,math_score > 70, eng_score > 60)
#数学と英語のスコアをそれぞれ範囲選択
select(name1, math_score)
select(name2, eng_score)
#名簿とスコア
> data1.list <- c("山田","佐藤","西田","高橋","北野")
> data2.list <- c("宮本","櫛田","原本","案田","倉野")
>
> #data.frame(a,b,c) = (氏名,数学の得点, 英語の得点)
> name1 <- data.frame(
+ data1=data1.list,
+ math_score=c(50,60,70,80,90),
+ eng_score=c(95,85,75,65,55))
> name1
data1 math_score eng_score
1 山田 50 95
2 佐藤 60 85
3 西田 70 75
4 高橋 80 65
5 北野 90 55
>
> name2 <- data.frame(
+ data2=data2.list,
+ math_score=c(45,55,68,93,80),
+ eng_score=c(99,84,57,43,86))
> name2
data2 math_score eng_score
1 宮本 45 99
2 櫛田 55 84
3 原本 68 57
4 案田 93 43
5 倉野 80 86
>
> #数学のスコアが70より高い,かつ英語のスコアが60より高い
> filter(name1,math_score > 70, eng_score > 60)
data1 math_score eng_score
1 高橋 80 65
> filter(name2,math_score > 70, eng_score > 60)
data2 math_score eng_score
1 倉野 80 86
>
> #数学と英語のスコアをそれぞれ範囲選択
> select(name1, math_score)
math_score
1 50
2 60
3 70
4 80
5 90
> select(name2, eng_score)
eng_score
1 99
2 84
3 57
4 43
5 86
おわりに
記事を作成する際に参考にさせて頂いたサイトを貼っておきます。