【RStuido】パッケージをアップデート
古いバージョンのパッケージを使っている場合、互換性の問題を引き起こす事がある。 この場合、update.packages()でパッケージをアップデートすると良い。 update.packages() アップデートが必要なパッケージをどんどん見つけ出してくれる。 「UPDATEしたい?」と聞かれるBOXが現れるので、「YES」とすれば、自動でアップデートしてくれて便利。
古いバージョンのパッケージを使っている場合、互換性の問題を引き起こす事がある。 この場合、update.packages()でパッケージをアップデートすると良い。 update.packages() アップデートが必要なパッケージをどんどん見つけ出してくれる。 「UPDATEしたい?」と聞かれるBOXが現れるので、「YES」とすれば、自動でアップデートしてくれて便利。
grepで特定の行を抽出しようとして下記コードを書いたら、 data=c <- Data[grep("Int", Data$ADNC, invert=T)] 下記メッセージ。 Error in `[.data.frame`(Data, grep("Int", Data$ADNC, invert = F)) : undefined columns selected あれ?と思って […]
データフレームから、dplyr::filter()を使って、特定の行を抽出する方法。 今回は、下記データ(Data)を使用。 > print(Data) ID Cohort Sex Age ADNC LBDSubtype 1 149 LBD M 83 Low BP 2 634 AD M 78 High DN 3 632 AD F 75 High BP 4 901 LBD M 74 Not T […]
データフレームから、grepを使って、特定の行を抽出する方法。 今回は、下記データ(Data)を使用。 > print(Data) ID Cohort Sex Age ADNC LBDSubtype 1 149 LBD M 83 Low BP 2 634 AD M 78 High DN 3 632 AD F 75 High BP 4 901 LBD M 74 Not TL 5 621 AD […]
[ ] (square brackets)を使って、各要素にアクセスする方法は、下記参照。 この基本を使って、データフレームの列を抽出する。 今回は、下記データ(Data)を使用。 > print(Data) ID Cohort Sex Age ADNC LBDSubtype 1 149 LBD M 83 Low BP 2 634 AD M 78 High DN 3 632 AD F 75 Hig […]
[ ] (square brackets)を使って、各要素にアクセスする方法は、下記参照。 この基本を使って、データフレームの行や列を抽出する。 今回は、下記データ(Data)を使用。 > print(Data) ID Cohort Sex Age ADNC LBDSubtype 1 149 LBD M 83 Low BP 2 634 AD M 78 High DN 3 632 AD F 75 H […]
久しぶりにRで作図していたら、下記メッセージ。 Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0. ℹ Please use `linewidth` instead. あれ?今までこんなメッセージ出てなかったのに……と思って調べると、ggplot2 3.4.0からは、線の太さを「size」ではなくて「li […]
以下に示すのは、ggplotを使って、平均値で棒グラフを作る方法。 前準備 パッケージのインストール あらかじめ、必要なパッケージをインストールしておく。 library(tidyverse) library("ggplot2") データフレームのインポート 使用するデータフレームをインポートする。 今回は、任意の場所に作っておいたxlsxファイルを使用。 # xlsxファイルの読み込み Data […]
Rで文字列操作を行う際に、標準パッケージ(baseパッケージ)やstringrパッケージを使っていることが多いと思う。 私の周囲にはstringrを好む人が多いけれども、実際、どちらを使った方がよいのか、調べてみた。 R標準パッケージ、stringrパッケージの比較 標準パッケージ (base R) メリット 追加インストールが不要:どの環境でもすぐに使用可能。 小規模データでは、実行速度が速い: […]
R Markdownをknitすると、下記エラーが出で止まった。 knit error: bkm [reaction mix] should only contain alphanumeric characters, ":", "-" and "_". ChatGPT先生に尋ねると、チャンク名にスペースが含まれているためエラーが出ているとのこと。 なので、チャンク名のところを、 `` […]
R Markdownをkinitしようとしたら、下記エラー。 processing file: xxx.Rmd Error in parse_block(g[-1], g[1], params.src, markdown_mode) : Duplicate chunk label 'reaction mix', which has been used for the chunk:... Execu […]
とあるR Markdownファイルをdocx形式で出力しようとしたところ、以下のエラーが発生した。 Error: Functions that produce HTML output found in document targeting docx output. HTML出力を行う関数がdocx出力を行うドキュメントに含まれているため、エラーが発生しているとのこと。 これ、YAMLヘッダーにal […]
Markdownで簡単な表を書いて、 Cont_6h <- c("Cont_6h_1","Cont_6h_2","Cont_6h_3") LPS_6h <- c("LPS_6h_1","LPS_6h_2","LPS_6h_3") plate_6h <- data.frame(Cont_6h,LPS_6h) %>% t() colnames(plate_6h) <- c("1 […]
Hyper-V に Ubuntu 22.04 LTS を入れて RStudio Server を利用していたけど、SSH のところで引っかかって、手元の Laptop PC から繋げなくなったりした。 ネット上のトラブルシューティングは色々試してみたけど、後一歩 work せず、「これを使うにはちょっと知識不足だなー。」と感じて一旦リセット。ネットワークエンジニアリング的な事を調べる事自体は楽しい […]
Vector、Matrix、DataFrame、List etc. から [] (square brackets) を使って特定の要素へアクセスする方法。 ベクトル (Vector) の場合 Vectorを作る。 v <- c("a","b","c","d","e") v output [1] "a" "b" "c" "d" "e" このVectorの場合、左から1,2,3,4,5となる。 […]
以前、RStudio Cloud を導入して使用していたが、使用限度などの問題があり、なんだかんだと使い辛さを感じるようになってきた。 なので、しばらく敬遠していた RStudio Server 環境作りに着手することにした。 RStudio Server を使うメリット 計算端末と操作端末を分離できる RStudio Server を、ハイスペックのローカルPCに導入しておけば、R のスクリプト […]
Rを使った正規分布関連の覚書。 正規分布 (normal distribution) とは 正規分布とは、平均値と最頻値・中央値が一致し、それを軸として左右対称となっている確率分布。 多くの統計的手法において、データが正規分布に従うことを仮定している。 正規分布の特徴 紡錘形 左右対称 平均値と中央値が中央で一致している 「平均」と「分散」が重要 正規分布の68-95-99ルール 約68%のデータ […]
if 構文、if else 構文、if else if 構文の覚書。 If 構文 iF 構文は、他の反復 構文と同じく、 if (条件){処理} で表す。 例1:rnorm の標準正規分布で出てきた数値が正の数だったら、”Greater than 1″ とプリントする。 “rnorm” は、正規分布の値から無作為に数値を抽出する関数。 […]
データフレームの要素などにあてがう時は、空vectorなどを先に作っておき、そこに処理結果を書き込むようにする。 空のvectorやlistを作る場合は、 vector() 、data frameの場合は matrix() と data.frame() を使用して作成。 空ベクトル (Empty Vector) vector(mode = X, length = Y) mode は データ型 do […]
For ループは「仕事を反復 (iterate) する」ループ機能の一つ。 for(条件){処理} で表す。 前回紹介した While ループと違うのは、()内に繰り返す回数が入る事。 For ループの書き方と While ループとの違い 例1:”Hello”とプリントする。 while ループだと、 # TRUEだったら"Hello"とプリントする。 while(TRUE […]
while ループでは、ある条件式が与えられると、その条件式が偽になるまで処理を繰り返し続ける構文。 while(条件){処理} で表す。 Rではapplyファミリーで代用できるし、速度も遅いので、他の言語ほどは while loop を使わない。 でも、基本は知っておく必要がある。 永遠に繰り返す while ループ 例1:TRUEだったら”Hello”とプリントする # […]
リストは異なるデータ構造を複数個格納することができるデータ構造の事。 Vector, Matrix, DataFrameなども混ぜて格納できる。 リスト (List) を作る list は list() で作成する。 my_list <- list( v=c(1,2,3,4,5,6), v2=c("a","b","c"), m=matrix(1:6, ncol=2), df=data.fra […]
データフレーム (data frame) の作り方色々。 データフレーム (Data Frame) とは データフレームは list の2次元バージョン。 データサイエンスで最も多く使用される。 データフレームにはここのベクトルをまとめて2次元の表にする。 ここの vector は表の中の “列” になる。 それぞれの列は異なる型のデータを格納できるが、同じ列内は vect […]
行列 (Matrix) の作り方。 行列 (Matrix) とは matrix は線形代数の行列と同じように、2次元配列に値を格納する。 Matrix を作る 行を指定する場合 matrix を作る時は、行列に再構成する vector を渡し、さらに nrow 引数に数値を渡して行列の行数を定義する。 すると matrix は指定された行数の行列になるように vector を再構成す […]
ベクトル (vector) の作り方。 ベクトル (Vector) とは vector は1次元ベクトルとして値を格納する。 イメージは、「1列のデータセット」。 例えば、下記の場合、Boxの中にそれぞれ数値が入っている。 これは、左から1,3,7,11,14という数字が格納された vector。 vector の中身は、数値でもいいし、文字列でも良い。 だたし、数値と文字列の混在の […]
例えば、下記データフレームを作る。 # データフレームを作成 df <- data.frame( x = c("A", "B", "C"), y = c(1, 3, 5), z = c("Apple", "Banana", "Cherry") ) # データフレームを表示 print(df) output > print(df) x y z 1 A 1 Apple 2 B 3 Bana […]
例えば下記データ(Data_c)がある。 X ID Cohort Sex Age ADNC 1 1 232493 LBD Male 83 Low 2 2 326342 AD Male 78 High 3 3 326322 LBD Female 75 Low 4 4 219018 LBD Male 74 Low 5 5 326217 AD Male 78 High 6 6 324906 LBD Ma […]
データをインポートしたらまず始めにする作業。 今回は、同じ階層にある”my_Data”というエクセルファイルをインポート library(readxl) Data_C <- readxl::read_xlsx("../my_Data.xlsx") str()でデータの中身を確認する。 str(Data_C) output tibble [1,052 × […]
下記のようなデータが得られて、 1行目の値を列名に宛てがいたい場合。 colnames() で列名を1行目に指定した後、1行目を削除する。 colnames(df7) <- df7[1,] df7 <- df7[-1,] リンク リンク リンク リンク
下記のようなデータフレーム(df)があり、行を昇順or降順で並べ替えたい時。 私が使いやすいと思う順で arrange() , order , sort() の使い方を書き留めておく。 dplyr::arrange() 関数 arrange() はdplyrのパッケージの中に入っている。 install.packages("dplyr") library(dplyr) 昇順で並べ替え 方法は、 a […]
下記のようなデータがあって、行と列を入れ替えたい場合。 t(データ) でOK。 df6 <- t(df5) ただこれだと行列で返ってくるので、 > class(df6) [1] "matrix" "array" > is.data.frame(df6) [1] FALSE as.data.frame でデータフレームに戻す。 > df7 <- as.data.fram […]
下記のようなデータがあって、 “Deceased” が “True” と “False” と入力されている症例がそれぞれどれくらいずつあるか count(group_by()) で求めると、 Dat1 <- read_xlsx("./Data/test.xlsx") %>% rename(OldestCDR = ' […]
例えば、下記のようなデータがあって、 “Deceased” が “True” と “False” と入力されている症例がそれぞれどれくらいずつあるか知りたい時。 count(group_by()) で求める。 Dat1 <- read_xlsx("./Data/test.xlsx") %>% rename(Olde […]
下のようなグラフがあって、この背景を変更したいとき。 themeで変更する。 グラフの背景の変更 白 theme_classic() グレー+格子(白) theme_gray() 白+格子(グレー) theme_bw() 白+格子(黒) theme_linedraw() 白+格子(薄墨) theme_light() ダークグレー+格子 theme_dark() 白+格子(外枠なし) theme_m […]
ggplot2でグラフを作っていて、「レジェンドは要るけど、レジェンドタイトルは消したいな」と思って消した時の備忘録。 使う関数は「theme」のlegend.title = element_blank。 theme(legend.title = element_blank()) 無事に消えた。 全体のコードは下記。 ggplot(Data2, aes(x = Age, y = `XX posit […]
グラフを作っていて、「Facetのタイトルのフォントサイズを変更したい」と思って消した時の備忘録。 themeに”strip.text = element_text(size = ○○)”でサイズを指定すればOK。 theme(strip.text = element_text(size = 20)) size=20で追加してみたら、フォントサイズが大きくなった。 &nbs […]