LoginSignup
0
0

More than 3 years have passed since last update.

RStudioのパッケージインストール時に発生するエラーとその対処

Last updated at Posted at 2020-07-20

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

image.png

文字コードの変更

メニューの選択画面のToolsGlobal Optionsから、文字コードをUTF-8に設定しました。
(2020/7/26追記)また, 日本語ディレクトリ名自体が文字化けの原因になっていると考えて、ディレクトリ名もアルファベット表記に変更しました。

tools.PNG

image.png

再起動

その後、Ctrl+Shift+F11によって、RStudioを再起動しました。

パッケージのインストールと動作確認

再度、install.packagesでパッケージをインストールしてみると、エラーメッセージが消えました。
そこで、library()でパッケージを有効可すると、filter()select()などが使えるようになりました。

code
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)

console
#名簿とスコア
> 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

おわりに

記事を作成する際に参考にさせて頂いたサイトを貼っておきます。

参考


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0