例えば作表の際、列名に「(N = 数字)」という情報をいれたくて、数値は計算式で出したい場合、
stringr::str_c()
文字列操作は Hadley氏作製の stringr パッケージで完結できる。
- 処理速度が速い。
- 関数が全て "str_" で始まる。
- パイプ(%>%)で連鎖しやすい。
- R標準にはない機能も色々追加されている。
stringr パッケージは tidyverse パッケージの中に入っているので、tidyverse をインストールしておけば使える。
install.packages(tidyverse)
library(tidyverse)
このstringrパッケージのstr_c()
が R標準パッケージのpaste()
(後述) に該当する。
使い方は、
str_c("文字列", 数式..., sep = "")
の様な感じ。
sep = "" で区切り(ハイフン、アンダースコア、カンマ、スペース、何もなし etc.)を指定できる。
colnames(df) <- c(
str_c("(N",sum(Data_AD$Stage == 1, na.rm = TRUE),")", sep = "="),
str_c("(N",sum(Data_AD$Stage == 2, na.rm = TRUE),")", sep = "="),
str_c("(N",sum(Data_AD$Stage == 3, na.rm = TRUE),")", sep = "="),
str_c("(N",sum(Data_AD$Stage == 4, na.rm = TRUE),")", sep = "="),
str_c("(N",sum(Data_AD$Stage == 5, na.rm = TRUE),")", sep = "=")
)
base::paste()
R標準パッケージにもpaste()
が用意されている。
使い方は、
paste(文字列, 数式, 文字列,...)
のように繋いでいく。
colnames(df) <- c(
paste("(N=",sum(Data_AD$Stage == 1, na.rm = TRUE),")"),
paste("(N=",sum(Data_AD$Stage == 2, na.rm = TRUE),")"),
paste("(N=",sum(Data_AD$Stage == 3, na.rm = TRUE),")"),
paste("(N=",sum(Data_AD$Stage == 4, na.rm = TRUE),")"),
paste("(N=",sum(Data_AD$Stage == 5, na.rm = TRUE),")") )