statsailr_procs_base 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a51230b59e2b856ea437ad4ac97b646b78b39a1295cb5b8208f9e7e53ff33d55
4
- data.tar.gz: 0f70c8c3c6abbcc76f4ba744819b12f68199fbad1aa8fd92f7a8e5ec8fca222f
3
+ metadata.gz: 6e0d1dc502ec3437a933f302624f5f4da5ee51f14fef0c1b9bbd873b1dd23cd3
4
+ data.tar.gz: d19c0f2b485e37149df2e74e853cc14a82ddb38038a04c5b9ab222631c508481
5
5
  SHA512:
6
- metadata.gz: 9f73d33ca1053d0bde2c41d1f284b3c1a7ad1326153acf42e0e5a50b4682983160eb3f4bee85f1187e156fde70b7c83b9ff5b1538fa11a0b4ea9c70e912e06bd
7
- data.tar.gz: e4ef6beb2a3608ebd5586b5ef3b5ac7d3abc8b2b03c7bd3738c297bcf5ec0df03fc1c28e5e71b122ef3124587a4baea155cd10184bcc7e6413380976357bbcf2
6
+ metadata.gz: cdd5aee4641cc52e92dfcdefd793a759c1f6acfc4694b35b67bdeebf0565d0a1a60782e51226b6db64a4a53de0de1825979171ac7e0843bdfc8d4ed1f0519f76
7
+ data.tar.gz: a5887f5812df8357aa1c13662a0df3d7a376be94fcec89c9f484b1a966258e7c23ce1bd34cacfcc2e9c512f4df441ca5517f16ee6924ec02c69060072f119c70
@@ -2,7 +2,7 @@ module StatSailr
2
2
  module ProcsBase
3
3
  def self.check_statsailr_version
4
4
  statsailr_version = StatSailr::VERSION
5
- statsailr_version_at_least = "0.7.1"
5
+ statsailr_version_at_least = "0.7.6"
6
6
  return version_should_be_at_least( statsailr_version , statsailr_version_at_least )
7
7
  end
8
8
 
@@ -0,0 +1,39 @@
1
+ sts_filter = new.env()
2
+
3
+ sts_filter$wrap_filter = function( data, cond ){
4
+ lang_cond = rlang::parse_expr( cond )
5
+ df = dplyr::filter( data, !! lang_cond )
6
+ return(df)
7
+ }
8
+
9
+ sts_filter$wrap_select = function( data, cond ){
10
+ lang_cond = rlang::parse_exprs(cond)
11
+ df = dplyr::select(data, !!! lang_cond)
12
+ return(df)
13
+ }
14
+
15
+ sts_filter$assign_to = function(var, df){
16
+ if( (! is.character(var)) || length(var) != 1 ){
17
+ stop("var argument requires character vector with size of 1")
18
+ }
19
+
20
+ global_env = globalenv()
21
+ global_env[[ var[1] ]] = df
22
+ return(df)
23
+ }
24
+
25
+ sts_filter$finalizer = function( df, last_inst, out ){
26
+ if( last_inst != "assign_to" ){
27
+ if( is.null(out) ){
28
+ cat("The last result is print out, and is not assigned to any variable.\n")
29
+ print(head(df))
30
+ cat("Use out= option for PROC COMMAND or use assing_to instruction\n")
31
+ cat("to assign the last result to some variable.\n")
32
+ }else{
33
+ sts_filter$assign_to( out, df )
34
+ }
35
+ }else{
36
+ # OK. The result dataframe is already assigned using assign_to instruction.
37
+ }
38
+ }
39
+
@@ -0,0 +1,49 @@
1
+ module ProcFilter
2
+ include ProcSettingModule
3
+
4
+ source_r_file(__dir__, File.basename(__FILE__ , ".rb") + ".R")
5
+ validate_option("data", is_a: ["SymbolR", "String"], as: "SymbolR" , required: true)
6
+ validate_option("out", is_a: ["SymbolR", "String"], as: "String" , required: false)
7
+ finalizer_enabled()
8
+
9
+ def setting_for_cond( setting )
10
+ setting.libname = nil
11
+ setting.envname = "sts_filter"
12
+ setting.func_name = "wrap_filter"
13
+ setting.main_arg_and_how_to_treat = [ "cond", :read_as_one_str, :no_nil]
14
+ setting.runtime_args = {"data" => previous_or( param("data") ) }
15
+ setting.store_result = true
16
+ setting.print_opt = false
17
+ end
18
+
19
+ def setting_for_select( setting )
20
+ setting.libname = nil
21
+ setting.envname = "sts_filter"
22
+ setting.func_name = "wrap_select"
23
+ setting.main_arg_and_how_to_treat = ["cond", :read_symbols_or_functions_as_strvec, :no_nil]
24
+ setting.runtime_args = {"data" => previous_or( param("data") ) }
25
+ setting.store_result = true
26
+ setting.print_opt = false
27
+ end
28
+
29
+ def setting_for_assign_to( setting )
30
+ setting.libname = nil
31
+ setting.envname = "sts_filter"
32
+ setting.func_name = "assign_to"
33
+ setting.main_arg_and_how_to_treat = ["var", :read_as_strvec, :no_nil]
34
+ setting.runtime_args = {"df" => previous_or( param("data") ) }
35
+ setting.store_result = true
36
+ setting.print_opt = false
37
+ end
38
+
39
+ def setting_for_finalizer( setting )
40
+ setting.libname = nil
41
+ setting.envname = "sts_filter"
42
+ setting.func_name = "finalizer"
43
+ setting.main_arg_and_how_to_treat = [ nil , nil , :allow_nil ]
44
+ setting.runtime_args = {"df" => previous_or( RBridge::r_nil()), "last_inst" => previous_inst_name(), "out" => param("out")}
45
+ setting.store_result = false
46
+ setting.print_opt = false
47
+ end
48
+ end
49
+
@@ -0,0 +1,39 @@
1
+ sts_ggplot = new.env()
2
+
3
+ library(rlang)
4
+ library(ggplot2)
5
+
6
+ sts_ggplot$mapping = function( data, assoc ){
7
+ assoc_lang = rlang::parse_exprs(assoc)
8
+ # https://github.com/tidyverse/ggplot2/issues/2675
9
+ gg = ggplot2::ggplot(data, ggplot2::aes( ,, !!! assoc_lang ))
10
+ return( gg )
11
+ }
12
+
13
+ sts_ggplot$geom_point_wrapper = function( gg, params = NULL, ... ){
14
+ if( is.null(params) ){
15
+ gg = gg + ggplot2::geom_point()
16
+ }else{
17
+ params_lang = rlang::parse_exprs(params)
18
+ # https://stackoverflow.com/questions/68379666/how-to-specify-a-package-or-namespace-for-rlangexec
19
+ # https://stackoverflow.com/questions/70202220/big-bang-operator-for-ggplot2-geom-point-function
20
+ # real_fun <- get("geom_point", envir=as.environment(paste0("package:", "ggplot2")))
21
+ # gg = gg + rlang::exec(real_fun, !!! params_lang , ...)
22
+ gg = gg + rlang::inject(ggplot2::geom_point( !!! params_lang , ...))
23
+ }
24
+ return( gg )
25
+ }
26
+
27
+ sts_ggplot$geom_histogram_wrapper = function( gg, params = NULL, ...){
28
+ if( is.null(params) ){
29
+ gg = gg + ggplot2::geom_histogram()
30
+ }else{
31
+ params_lang = rlang::parse_exprs(params)
32
+ gg = gg + rlang::inject(ggplot2::geom_histogram( !!! params_lang , ...))
33
+ }
34
+ return( gg )
35
+ }
36
+
37
+ sts_ggplot$finalizer = function( gg ){
38
+ plot(gg)
39
+ }
@@ -0,0 +1,53 @@
1
+ module ProcGgplot
2
+ include ProcSettingModule
3
+
4
+ source_r_file( __dir__, File.basename(__FILE__ , ".rb") + ".R")
5
+ validate_option("data", is_a: ["SymbolR", "String"], as: "SymbolR" , required: true)
6
+ finalizer_enabled()
7
+
8
+ def setting_for_mapping( setting )
9
+ setting.libname = nil
10
+ setting.envname = "sts_ggplot"
11
+ setting.func_name = "mapping"
12
+ setting.main_arg_and_how_to_treat = [ "assoc" , :read_named_args_as_named_strvec, :no_nil]
13
+ setting.runtime_args = {"data" => previous_or(param("data")) }
14
+ setting.store_result = true
15
+ setting.print_opt = false
16
+ setting.plot_opt = false
17
+ end
18
+
19
+ def setting_for_geom_point( setting )
20
+ setting.libname = nil
21
+ setting.envname = "sts_ggplot"
22
+ setting.func_name = "geom_point_wrapper"
23
+ setting.main_arg_and_how_to_treat = [ "params" , :read_named_args_as_named_strvec, :allow_nil]
24
+ setting.runtime_args = {"gg" => previous_or(RBridge::r_nil()) }
25
+ setting.store_result = true
26
+ setting.print_opt = false
27
+ setting.plot_opt = false
28
+ end
29
+
30
+ def setting_for_geom_histogram( setting )
31
+ setting.libname = nil
32
+ setting.envname = "sts_ggplot"
33
+ setting.func_name = "geom_histogram_wrapper"
34
+ setting.main_arg_and_how_to_treat = [ "params" , :read_named_args_as_named_strvec, :allow_nil]
35
+ setting.runtime_args = {"gg" => previous_or(RBridge::r_nil()) }
36
+ setting.store_result = true
37
+ setting.print_opt = false
38
+ setting.plot_opt = false
39
+ end
40
+
41
+ def setting_for_finalizer( setting )
42
+ setting.libname = nil
43
+ setting.envname = "sts_ggplot"
44
+ setting.func_name = "finalizer"
45
+ setting.main_arg_and_how_to_treat = [ nil, nil , :allow_nil]
46
+ setting.runtime_args = {"gg" => previous_or(RBridge::r_nil()) }
47
+ setting.store_result = false
48
+ setting.print_opt = false
49
+ setting.plot_opt = true
50
+ end
51
+
52
+ end
53
+
@@ -0,0 +1,55 @@
1
+ sts_group = new.env()
2
+
3
+ library(rlang)
4
+
5
+ sts_group$wrap_group_by = function(data, vars){
6
+ vars_lang = rlang::parse_exprs(vars)
7
+ grouped_data = rlang::inject(dplyr::group_by( data, !!! vars_lang ))
8
+ return(grouped_data)
9
+ }
10
+
11
+
12
+ sts_group$wrap_mutate = function(data, params){
13
+ params_lang = rlang::parse_exprs(params)
14
+ mutated_data = rlang::inject(dplyr::mutate( data, !!! params_lang ))
15
+ return(mutated_data)
16
+ }
17
+
18
+
19
+ sts_group$wrap_summarize = function(data, params){
20
+ params_lang = rlang::parse_exprs(params)
21
+ result = rlang::inject(dplyr::summarize( data, !!! params_lang ))
22
+ print(result)
23
+ return(data)
24
+ }
25
+
26
+
27
+ sts_group$assign_to = function(var, df){
28
+ df = as.data.frame(df)
29
+
30
+ if( (! is.character(var)) || length(var) != 1 ){
31
+ stop("var argument requires character vector with size of 1")
32
+ }
33
+
34
+ global_env = globalenv()
35
+ global_env[[ var[1] ]] = df
36
+ return(df)
37
+ }
38
+
39
+ sts_group$finalizer = function( df, last_inst, out ){
40
+ df = as.data.frame(df)
41
+
42
+ if( last_inst != "assign_to" ){
43
+ if( is.null(out) ){
44
+ cat("The last result is print out, and is not assigned to any variable.\n")
45
+ print(head(df))
46
+ cat("Use out= option for PROC COMMAND or use assing_to instruction\n")
47
+ cat("to assign the last result to some variable.\n")
48
+ }else{
49
+ sts_group$assign_to( out, df )
50
+ }
51
+ }else{
52
+ # OK. The result dataframe is already assigned using assign_to instruction.
53
+ }
54
+ }
55
+
@@ -0,0 +1,59 @@
1
+ module ProcGroup
2
+ include ProcSettingModule
3
+
4
+ source_r_file(__dir__, File.basename(__FILE__ , ".rb") + ".R")
5
+ validate_option("data", is_a: ["SymbolR", "String"], as: "SymbolR" , required: true)
6
+ validate_option("out", is_a: ["SymbolR", "String"], as: "String" , required: false)
7
+ finalizer_enabled()
8
+
9
+ def setting_for_group_by( setting )
10
+ setting.libname = nil
11
+ setting.envname = "sts_group"
12
+ setting.func_name = "wrap_group_by"
13
+ setting.main_arg_and_how_to_treat = [ "vars", :read_as_strvec, :no_nil]
14
+ setting.runtime_args = {"data" => previous_or( param("data") ) }
15
+ setting.store_result = true
16
+ setting.print_opt = false
17
+ end
18
+
19
+ def setting_for_mutate( setting )
20
+ setting.libname = nil
21
+ setting.envname = "sts_group"
22
+ setting.func_name = "wrap_mutate"
23
+ setting.main_arg_and_how_to_treat = ["params", :read_named_args_as_named_strvec, :no_nil]
24
+ setting.runtime_args = {"data" => previous_or( param("data") ) }
25
+ setting.store_result = true
26
+ setting.print_opt = false
27
+ end
28
+
29
+ def setting_for_summarize( setting )
30
+ setting.libname = nil
31
+ setting.envname = "sts_group"
32
+ setting.func_name = "wrap_summarize"
33
+ setting.main_arg_and_how_to_treat = ["params", :read_named_args_as_named_strvec, :no_nil]
34
+ setting.runtime_args = {"data" => previous_or( param("data") ) }
35
+ setting.store_result = true
36
+ setting.print_opt = false
37
+ end
38
+
39
+ def setting_for_assign_to( setting )
40
+ setting.libname = nil
41
+ setting.envname = "sts_group"
42
+ setting.func_name = "assign_to"
43
+ setting.main_arg_and_how_to_treat = ["var", :read_as_strvec, :no_nil]
44
+ setting.runtime_args = {"df" => previous_or( param("data") ) }
45
+ setting.store_result = true
46
+ setting.print_opt = false
47
+ end
48
+
49
+ def setting_for_finalizer( setting )
50
+ setting.libname = nil
51
+ setting.envname = "sts_group"
52
+ setting.func_name = "finalizer"
53
+ setting.main_arg_and_how_to_treat = [ nil , nil , :allow_nil ]
54
+ setting.runtime_args = {"df" => previous_or( RBridge::r_nil()), "last_inst" => previous_inst_name(), "out" => param("out")}
55
+ setting.store_result = false
56
+ setting.print_opt = false
57
+ end
58
+ end
59
+
@@ -0,0 +1,32 @@
1
+ sts_sort = new.env()
2
+
3
+ sts_sort$wrap_arrange = function( data, cond ){
4
+ lang_cond = rlang::parse_exprs(cond)
5
+ df = dplyr::arrange(data, !!! lang_cond)
6
+ return(df)
7
+ }
8
+
9
+ sts_sort$assign_to = function(var, df){
10
+ if( (! is.character(var)) || length(var) != 1 ){
11
+ stop("var argument requires character vector with size of 1")
12
+ }
13
+
14
+ global_env = globalenv()
15
+ global_env[[ var[1] ]] = df
16
+ return(df)
17
+ }
18
+
19
+ sts_sort$finalizer = function( df, last_inst, out ){
20
+ if( last_inst != "assign_to" ){
21
+ if( is.null(out) ){
22
+ cat("The last result is print out, and is not assigned to any variable.\n")
23
+ print(head(df))
24
+ cat("Use out= option for PROC COMMAND or use assing_to instruction\n")
25
+ cat("to assign the last result to some variable.\n")
26
+ }else{
27
+ sts_sort$assign_to( out, df )
28
+ }
29
+ }else{
30
+ # OK. The result dataframe is already assigned using assign_to instruction.
31
+ }
32
+ }
@@ -0,0 +1,40 @@
1
+ module ProcSort
2
+ include ProcSettingModule
3
+
4
+ source_r_file(__dir__, File.basename(__FILE__ , ".rb") + ".R")
5
+ validate_option("data", is_a: ["SymbolR", "String"], as: "SymbolR" , required: true)
6
+ validate_option("out", is_a: ["SymbolR", "String"], as: "String" , required: false)
7
+ finalizer_enabled()
8
+
9
+ def setting_for_arrange( setting )
10
+ setting.libname = nil
11
+ setting.envname = "sts_sort"
12
+ setting.func_name = "wrap_arrange"
13
+ setting.main_arg_and_how_to_treat = [ "cond", :read_as_one_str, :no_nil]
14
+ setting.runtime_args = {"data" => previous_or( param("data") ) }
15
+ setting.store_result = true
16
+ setting.print_opt = false
17
+ end
18
+
19
+ def setting_for_assign_to( setting )
20
+ setting.libname = nil
21
+ setting.envname = "sts_sort"
22
+ setting.func_name = "assign_to"
23
+ setting.main_arg_and_how_to_treat = ["var", :read_as_strvec, :no_nil]
24
+ setting.runtime_args = {"df" => previous_or( param("data") ) }
25
+ setting.store_result = true
26
+ setting.print_opt = false
27
+ end
28
+
29
+ def setting_for_finalizer( setting )
30
+ setting.libname = nil
31
+ setting.envname = "sts_sort"
32
+ setting.func_name = "finalizer"
33
+ setting.main_arg_and_how_to_treat = [ nil , nil , :allow_nil ]
34
+ setting.runtime_args = {"df" => previous_or( RBridge::r_nil()), "last_inst" => previous_inst_name(), "out" => param("out")}
35
+ setting.store_result = false
36
+ setting.print_opt = false
37
+ end
38
+
39
+ end
40
+
@@ -102,4 +102,25 @@ sts_uni$qqplot = function( results , var = NULL , qqline = FALSE, ... ){
102
102
  }
103
103
  }
104
104
 
105
+ sts_uni$hist = function( data, vars ){
106
+ if ( (! is.null(var)) && (length(var) != 1) ){
107
+ stop("main argument needs to be length of 1 character vector")
108
+ }
109
+
110
+ size = length(vars)
111
+ par(mfrow(size, 1))
112
+
113
+ for( i in seq(1, size)){
114
+ var = vars[[i]]
115
+ g = data[[var]]
116
+ h <- hist(g, breaks = 10, density = 10,
117
+ col = "lightgray", xlab = "Accuracy", main = "Overall")
118
+ xfit <- seq(min(g), max(g), length = 40)
119
+ yfit <- dnorm(xfit, mean = mean(g), sd = sd(g))
120
+ yfit <- yfit * diff(h$mids[1:2]) * length(g)
121
+
122
+ lines(xfit, yfit, col = "black", lwd = 2)
123
+ }
124
+
125
+ }
105
126
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module StatSailr
4
4
  module ProcsBase
5
- VERSION = "0.1.0"
5
+ VERSION = "0.1.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statsailr_procs_base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toshihiro Umehara
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-22 00:00:00.000000000 Z
11
+ date: 2021-12-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This 'statsailr_procs_base' gem provides a collection of fundamental
14
14
  PROCs for StatSailr program. This gem is essential for StatSailr to provide a useful
@@ -38,6 +38,12 @@ files:
38
38
  - lib/statsailr_procs_base/proc_setting/proc_common/factor.rb
39
39
  - lib/statsailr_procs_base/proc_setting/proc_common/numeric.R
40
40
  - lib/statsailr_procs_base/proc_setting/proc_common/numeric.rb
41
+ - lib/statsailr_procs_base/proc_setting/proc_filter.R
42
+ - lib/statsailr_procs_base/proc_setting/proc_filter.rb
43
+ - lib/statsailr_procs_base/proc_setting/proc_ggplot.R
44
+ - lib/statsailr_procs_base/proc_setting/proc_ggplot.rb
45
+ - lib/statsailr_procs_base/proc_setting/proc_group.R
46
+ - lib/statsailr_procs_base/proc_setting/proc_group.rb
41
47
  - lib/statsailr_procs_base/proc_setting/proc_mult.R
42
48
  - lib/statsailr_procs_base/proc_setting/proc_mult.rb
43
49
  - lib/statsailr_procs_base/proc_setting/proc_plot.R
@@ -45,6 +51,8 @@ files:
45
51
  - lib/statsailr_procs_base/proc_setting/proc_print.R
46
52
  - lib/statsailr_procs_base/proc_setting/proc_print.rb
47
53
  - lib/statsailr_procs_base/proc_setting/proc_reg.rb
54
+ - lib/statsailr_procs_base/proc_setting/proc_sort.R
55
+ - lib/statsailr_procs_base/proc_setting/proc_sort.rb
48
56
  - lib/statsailr_procs_base/proc_setting/proc_two.R
49
57
  - lib/statsailr_procs_base/proc_setting/proc_two.rb
50
58
  - lib/statsailr_procs_base/proc_setting/proc_uni.R
@@ -58,7 +66,7 @@ metadata:
58
66
  homepage_uri: https://github.com/niceume/statsailr_procs_base
59
67
  source_code_uri: https://github.com/niceume/statsailr_procs_base
60
68
  changelog_uri: https://github.com/niceume/statsailr_procs_base
61
- post_install_message:
69
+ post_install_message:
62
70
  rdoc_options: []
63
71
  require_paths:
64
72
  - lib
@@ -73,8 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
81
  - !ruby/object:Gem::Version
74
82
  version: '0'
75
83
  requirements: []
76
- rubygems_version: 3.1.4
77
- signing_key:
84
+ rubygems_version: 3.2.31
85
+ signing_key:
78
86
  specification_version: 4
79
87
  summary: Collection of fundamental PROCs for StatSailr program
80
88
  test_files: []