datatable {DT} を利用して出力した表の列を固定する方法です。
始めにサンプルとする表を作成します。
library(dplyr)
library(DT)
<- matrix(data = rnorm(3 * 15) %>% round(3), nrow = 3, ncol = 15) %>%
sampledf data.frame() %>%
::add_column(S1 = LETTERS %>% head(3), .before = 1) %>%
tibble::add_column(S2 = letters %>% head(3), .after = 1)
tibbleglimpse(sampledf)
Rows: 3
Columns: 17
$ S1 <chr> "A", "B", "C"
$ S2 <chr> "a", "b", "c"
$ X1 <dbl> -0.145, 1.322, -1.116
$ X2 <dbl> 0.542, 0.258, -1.730
$ X3 <dbl> -2.277, 0.047, 2.978
$ X4 <dbl> -0.863, -1.156, 0.862
$ X5 <dbl> 0.036, -0.110, 0.676
$ X6 <dbl> 1.146, -0.677, -2.002
$ X7 <dbl> -1.976, 1.411, -0.201
$ X8 <dbl> 0.193, 0.248, -1.264
$ X9 <dbl> 0.435, 0.009, -0.067
$ X10 <dbl> 0.823, 1.224, 0.481
$ X11 <dbl> -0.944, -0.885, -0.386
$ X12 <dbl> 1.540, -0.336, 0.257
$ X13 <dbl> 0.426, 0.760, 0.986
$ X14 <dbl> 0.004, 1.198, 1.200
$ X15 <dbl> -0.636, -0.016, 0.244
列を固定するには extensions に “FixedColumns” を、options に scrollX = TRUE と fixedColumns = list(leftColumns(または rightColumns ) = 左(または右)端からの固定する列数) を指定します。
始めに左から3列目までを固定します。
leftColumns の場合は rownames も含んだ列数を指定します。
%>% datatable(
sampledf rownames = TRUE,
options = list(
dom = "t",
ordering = F,
scrollX = TRUE,
fixedColumns = list(leftColumns = 3)
),extensions = "FixedColumns"
)
続いて右から4列目までを固定します。
%>% datatable(
sampledf rownames = TRUE,
options = list(
dom = "t",
ordering = F,
scrollX = TRUE,
fixedColumns = list(rightColumns = 4)
),extensions = "FixedColumns"
)
以上です。