2023年 今年のブレイクスルー研究(Science)
年の瀬、各誌この1年のブレイクスルーや来年の展望etc.をまとめています。 諸事情で、帰国後ほとんど post 出来なかった Self Journal Club ですが、少し the shape of the land が見えてきたように思うので、こちらも徐々に復活させていきたいです。 まずは、毎年楽しみにしている Science の Breakthrough of the Year から。 20 […]
年の瀬、各誌この1年のブレイクスルーや来年の展望etc.をまとめています。 諸事情で、帰国後ほとんど post 出来なかった Self Journal Club ですが、少し the shape of the land が見えてきたように思うので、こちらも徐々に復活させていきたいです。 まずは、毎年楽しみにしている Science の Breakthrough of the Year から。 20 […]
これまで、ファイル名をハイフン “-” で区切っていたけど、諸々の事情でアンダースコア “_” に変更することに。 でも、一つ一つ手作業で変更するのは大変。 ……とゆーことで、ファイルエクスプローラー内のフォルダ名やファイル名を一括で変更する方法の備忘録。 いくつか方法があるけど、私はWindowsを使っているので、PowerShellを使って一括変 […]
文字列の抽出には、stringrパッケージのstr_extract()やstr_extract_all()を使う。 また、数値の抽出には、readrパッケージのparse_number()も使える。 3つの関数のざっくりとしたイメージは以下の通り。 str_extract(), str_extract_all(), parse_number()の特徴 str_extract():最初の一致を抽出 […]
特定の条件にマッチするかどうかを判定する関数には、str_detect() と grepl()を使うことができる。 str_detect() は stringr パッケージの関数で、grepl() はRの標準パッケージ(base)。 どちらとも正規表現が使える。 シンプルな検出なら grepl() でもよいけれど、str_detect()の方が汎用性が広いので、こちらをよく使っている。 また、st […]
str_count(string, pattern) は、文字列内に正規表現pattern がいくつ出現するかをカウントする関数。 この関数は、stringr パッケージに含まれているので、まずは、library(stringr) でパッケージを読み込む。 install.packages("stringr") library(stringr) str_count() str_count()の基本 […]
文字列を繰り返し複製する時には、str_dup() と strrep()などを使う。 str_dup():stringrパッケージの関数で、ベクトル化が簡単、使い方が直感的。 strrep():base R (標準関数)の関数で、追加パッケージのインストールは不要。 類似の関数にrep()があるけど、これは、ベクトル全体を繰り返すのに使う。str_dup()とstrrep()は文字列 […]
文字列のフォーマットを変更する時には、stringrパッケージに含まれているstr_to_upper(), str_to_lower(), str_to_title(), str_to_sentence()等を使う。 文字列のフォーマットを変更する関数 大文字にしたい → str_to_upper() 小文字にしたい → str_to_lower() タイトルケースにしたい → str_to_ti […]
あるvectorの要素を繋げて一つの文字列にしたい場合、str_flatten()やpaste0()を使う。 どちらも文字列を結合(連結)するための関数だけれど、使い方や挙動にいくつかの違いがある。 str_flatten() str_flatten() は、stringrパッケージの関数で、ベクトル内の要素を1つの文字列に結合するために使う。 ベクトル内の各要素を、collapseの区切り文字で […]
文字列を部分的に抽出したり、置換したりするときには、R標準パッケージ(base)のsubstr()、もしくは stringrパッケージならstr_sub()を使う。 substr()とstr_sub()の違い substr() は、Rの標準関数で、インストール不要でどこでも使える。 str_sub() は、stringrパッケージの関数で、可読性が高く、機能が充実。 実際には、以下の […]
文字列の中の文字数をカウントする方法としては、R標準パッケージ(base)に含まれるnchar()関数や、stringrパッケージのstr_length()関数等を使う。 ここでは主にstr_length()関数についてまとめておく。 str_length() str_length() の基本構造 str_length(string) 引数 string: 文字列または文字ベクトル。str_len […]
2つのデータフレームを結合するときには、dplyr::join()関数を使う。 join()関数は、dplyrパッケージの関数なので、まずはdplyrパッケージをインストールして読み込む必要がある。 install.packages("dplyr") library(dplyr) ただし、join()という関数自体はdplyrには存在せず、inner_join()、left_join()、righ […]
Rのrownames()関数は、データフレームや行列(matrix)の行名(row names)を取得または設定するための関数。 基本的な使い方 行名を取得する rownames(データフレームまたは行列) 例: df <- data.frame(A=1:3, B=c("X", "Y" , "Z" )) rownames(df) # 行名を取得 output [1] "1" "2" "3" […]
前回、R標準パッケージ(base)とstringrパッケージの比較をしてみて、「処理速度は、場合によってはbase、場合によってはstringrの方が速い」ということがわかった。 で、具体的にどのときにbase、どのときにstringrが速いのか、調べてみた。 処理速度に関する違い stringr の方が速い場合 ベクトル化された処理が可能なため、stringrの方が速くなることがある。 一貫した […]
とあるデータをインポートし、数セル分だけ抽出。 # データのインポート df1 <- read_excel("Data/data.xlsx", sheet="mom" ) df2 <- filter(df1, df1$...3=="Unknown" ) RefGene <- df2[df2$...5=="GAPDH" , "...6" ] ここでRefGeneはリスト型で返ってく […]
下記コードを書いて、scale_fill_manualでバーグラフの色を指定したけど、効かなかった。 p1 <- ggplot(df_6h, aes(x=Sample.name, y=Rel.Exp)) + stat_summary(fun=mean, geom="bar", colour="black" ) + scale_fill_manual(values=c("Cont"="whit […]
古いバージョンのパッケージを使っている場合、互換性の問題を引き起こす事がある。 この場合、update.packages()でパッケージをアップデートすると良い。 update.packages() アップデートが必要なパッケージをどんどん見つけ出してくれる。 「UPDATEしたい?」と聞かれるBOXが現れるので、「YES」とすれば、自動でアップデートしてくれて便利。
職場で、キングジムのテプラPRO SR599Pを購入。 このテプラ、PC上でデザインして、無線で印刷できるスグレモノ。 ……なんだけど、無線の設定に手間取ったので、同僚のPC設定のために備忘録。 いくつか方法があるけど、環境によって設定方法が異なる。 共通項目:アプリケーションのインストール ここは共通。 KING JIMのHPから、テプラPRO用ソフトウェア(とドライバ)をダウンロードする。 ダ […]
今まで、個人で Adobe Creative Cloud をサブスクリプションしていたけれど、今度から職場の Adobe ライセンスを利用できるようになりました! 2011年にAdobe がサブスク化してから、驚くほど使用料が高くなった……けれど、Adobe 関係の App は毎日と言っていいほど使っているので、弱者は言われるままでに高額サブスク料を支払うのみ……という関係がもう10年以上続いてい […]
最近職場が変わり、任期なしポストに着任しました。 これからよっぽどの事がない限り職場が変わらない……とゆー意気込みで、この機会に、個人購入していた Office365 を職場の Office365(テニュアは無料!)に完全移行することにしました。 で、そこで問題となるのが、長年貯めてきた OneDrive のデータ。 最初は地道に “ダウンロード → アップロードR […]
最近、思い切って異動!で、自宅から2時間弱かけて通うようになって……まあ、遠いです💦 往復4時間近くの通勤時間を無駄にはできないので、特急電車で通勤し、移動中も仕事の時間に! で、そこで重要となるのが、テザリング。 電車の中にもWiFiは入っているけど、まだイマイチ遅いので、毎回iphoneでテザリングして、メールのやりとりなどをしています。 今回はその […]
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 […]
右側のパネルに、画像を複数並べて表示したい場合、 「View」→「Multi-view」→「Wet grid size」を選択すると、色々選択肢が出てくる。 1x1 1x2(横並び) 2x1(縦並び) 2x2 3x3 Add row:行を追加 Add column:列を追加 Remove row:行を削除 Remove column:列を削除 Reset viewer sizes:設定をリセット […]
イラレで学会ポスター作成中。 普通にツールバーから文字ボタン「T」で文章を打つと、改行しないかぎりひたすら右に文章が続いていく。 これを、ある一定の枠内で自動的に折り返してほしい時の備忘録。 枠内で文章を折り返す 普通に文字ツールを選択し、 文字を入力する前に、左クリックしたまま、左上から右下へ枠(赤枠)を作成する。 そこに文字を打っていくと、赤枠内で文章が自動的に折り返される。 枠の大きさを変え […]
私は、こんな感じでどこかから飛び出たような、先広がりの、曲線矢印が好み。 ……なので、この矢印の作り方の備忘録。 曲がった矢印 先広がりの曲線を描く 曲線ツールで四分曲線を描く。 今回、太さは10ptくらいで作製。 線の種類のプルダウンを開き、 三角っぽい図を選択する。 矢頭を作る 「Window」タブから「Stroke」を選ぶ(もしくは、ショートカットで「Cont + F10」)。 Stroke […]
上の画像のように、画像をボヤッと切り抜く方法。 1.クリッピングマスクで切り抜く まずは切り抜きたい画像を用意。 切り抜きはクリッピングマスクで。 shapeで適当な形を選んで、 切り抜きたい画像の “上に” 乗せる。中身は塗りつぶす。 両方のオブジェを選択した状態で、右クリック→「クリッピングマスクの作成」 画像が、上のシェイプの形に切り取られた。 2. Featherで […]
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 […]