{"id":86,"date":"2024-02-20T23:20:57","date_gmt":"2024-02-20T23:20:57","guid":{"rendered":"https:\/\/belenagurtoc.virgen.io\/tech\/?p=86"},"modified":"2024-02-20T23:36:41","modified_gmt":"2024-02-20T23:36:41","slug":"basics-r","status":"publish","type":"post","link":"https:\/\/belenagurtoc.virgen.io\/tech\/2024\/02\/20\/basics-r\/","title":{"rendered":"Basics R"},"content":{"rendered":"\n<pre class=\"wp-block-preformatted\">pacman::p_load(readxl, ggplot2, dplyr, psych, tidyr, stringr, plotly, readr,h2o, rstudioapi, randomForest, tibble, psych, padr, fpp2, lubridate, DT, tidyverse, xlsx, janitor,stringi, openxlsx, foreach) \n\nlibrary(dplyr)\n\n\nli_bases &lt;- read_excel(\"~\/Documents\/@\/CasaDelOptico2023\/Analisis\/data\/bases\/fabricaciones_bases_16-08-22_16-12-22.xlsx\", sheet = 1, col_names = FALSE)\n\n\n#--Adhoc--assign column names\nnames(li_bases) &lt;- li_bases[2,]\n\n#--Adhoc--remove rows\nli_bases &lt;- li_bases[-c(1,2),]\n\n\n\n#Read RDS\n#Add Stock Min &amp; Max\n#stock.min at 28-10-21   \nventas_All_Estab &lt;- readRDS(\"~\/Documents\/@\/CasaDelOptico2023\/Analisis\/scripts\/loop_Ventas_detalle_allDistrib_19_04-19_08_v1.rds\")\n\n\n\n\n#READ RDS by parts\n#Assign VAR BY Estab's file name\n#Olivos\nvar_li_medidas_mono &lt;- \"listado_medidas_stock_Olivos_Mono_v1.rds\"\nvar_li_medidas_multi &lt;- \"listado_medidas_stock_Olivos_Multi_v1.rds\"\n\n#read Rds\nlistado_medidas_mono = readRDS(paste0(\"~\/Documents\/@\/CasaDelOptico2023\/Analisis\/scripts\/listado_medidas\/\", var_li_medidas_mono, sep =\"\"))\nlistado_medidas_multi = readRDS(paste0(\"~\/Documents\/@\/CasaDelOptico2023\/Analisis\/scripts\/listado_medidas\/\", var_li_medidas_multi, sep =\"\"))\n\n\n\n\n\n### Data transf:\n\n########################Convert to Mayus: Cod. Artic. ########################\n\ntb_Kardex_distinct$CODIGO_ARTICULO &lt;- toupper(tb_Kardex_distinct$CODIGO_ARTICULO)\n\n\n########################Remove Sufix from Establecimientos ########################\n\ntb_Kardex_distinct_noSufix &lt;- tb_Kardex_distinct %>% mutate(CODIGO_ARTICULO=trimws(gsub(\"02-+[0-9]{2}\", \"\", CODIGO_ARTICULO))) \n\n\n########################Fix the problem with CIL ########################\n\ntb_Kardex_distinct_noSufix_cil &lt;- tb_Kardex_distinct_noSufix %>% \n  mutate(MEDIDA= if_else(FORMA == \"CIL\" , trimws(gsub(\"[A-Z0-9]{6}\", \"\",tb_Kardex_distinct_noSufix$CODIGO_ARTICULO)), tb_Kardex_distinct_noSufix$MEDIDA))\n\n\n\n\n#--Mono\n#SEPARATE CODIGO_ARTICULO to Material_Code &amp; Medida\n pre_TL_long_tb_medidas_wCod_mono_Material_re &lt;- long_tb_medidas_wCod_mono_Material_re %>% separate( col = COD_ARTICULO, into = c(\"MATERIAL_COD\",\"COD_temp\"), sep=3, remove = FALSE)\n#Delete temp Col \npre_TL_long_tb_medidas_wCod_mono_Material_re$COD_temp &lt;- NULL\n\n#--Multi\n#SEPARATE CODIGO_ARTICULO to Material_Code &amp; Medida (temp)\npre_TL_long_tb_medidas_wCod_multi_Material_re &lt;- long_tb_medidas_wCod_multi_Material_re %>% separate( col = COD_ARTICULO, into = c(\"MATERIAL_COD\",\"COD_temp\"), sep=6, remove = FALSE) \n#Delete temp Col \npre_TL_long_tb_medidas_wCod_multi_Material_re$COD_temp &lt;- NULL\n\n#--Mono\n#SEPARATE CODIGO_ARTICULO to Material_Code &amp; Medida\n pre_TL_long_tb_medidas_wCod_mono_Material_re &lt;- long_tb_medidas_wCod_mono_Material_re %>% separate( col = COD_ARTICULO, into = c(\"MATERIAL_COD\",\"COD_temp\"), sep=3, remove = FALSE)\n#Delete temp Col \npre_TL_long_tb_medidas_wCod_mono_Material_re$COD_temp &lt;- NULL\n\n#--Multi\n#SEPARATE CODIGO_ARTICULO to Material_Code &amp; Medida (temp)\npre_TL_long_tb_medidas_wCod_multi_Material_re &lt;- long_tb_medidas_wCod_multi_Material_re %>% separate( col = COD_ARTICULO, into = c(\"MATERIAL_COD\",\"COD_temp\"), sep=6, remove = FALSE) \n#Delete temp Col \npre_TL_long_tb_medidas_wCod_multi_Material_re$COD_temp &lt;- NULL\n\n\n\n\n########################Change column names########################\n\nnames(min_max_new_391)[names(min_max_new_391) == \"StockMin_Trimestral\"] &lt;- \"StockMin_New\"\nnames(min_max_new_391)[names(min_max_new_391) == \"StockMax_Trimestral\"] &lt;- \"StockMax_New\"\n\n\n\n\n########################List files \/ Path dir ########################\n\npath_dir &lt;-\"~\/Documents\/@\/CasaDelOptico2023\/Analisis\/data\/ventas-fab\/\"\n\nnames_dtll &lt;- sort(list.files(path_dir, pattern = \"det|fab*.xls\"))\n\nnames_vtas_mov &lt;- sort(list.files(path_dir, pattern = \"mov|fab*.xls\"))\n\nnames_cab &lt;- sort(list.files(path_dir, pattern = \"cab|fab*.xls\"))\n\n\n\n\n###############################################################################\n#                               FUNCTION 3: pre_Cab_doc     #\n###############################################################################\n\n\nf3 &lt;- function(i){\n\n #import\n pre_Cab_doc = read_excel(paste(path_dir, i, sep = \"\"), sheet=1, col_names = FALSE)\n   \n #--assign column names\n names(pre_Cab_doc) &lt;- pre_Cab_doc[2,]\n  \n #--remove rows\n pre_Cab_doc &lt;- pre_Cab_doc[-c(1,2),]\n\n \n  ########################Column formats########################\n ##Data types\n #--ESTABLECIMIENTO - as character\n pre_Cab_doc$ESTABLECIMIENTO &lt;- as.character(pre_Cab_doc$ESTABLECIMIENTO)\n #--N\u00ba ORDEN - as character\n pre_Cab_doc$`N\u00ba ORDEN` &lt;- as.character(pre_Cab_doc$`N\u00ba ORDEN`)\n #--COD. CLIENTE - as character\n  pre_Cab_doc$`COD. CLIENTE` &lt;- as.character(pre_Cab_doc$`COD. CLIENTE`)\n #--CLIENTE - as character\n pre_Cab_doc$CLIENTE &lt;- as.character(pre_Cab_doc$CLIENTE)\n #--FECHA - as date\n pre_Cab_doc$FECHA &lt;- as.Date(pre_Cab_doc$FECHA, format = \"%d\/%m\/%Y\")\n #--TOTAL - as numeric\n pre_Cab_doc$TOTAL &lt;- as.numeric(pre_Cab_doc$TOTAL)\n #--ADELANTO - as numeric\n pre_Cab_doc$ADELANTO &lt;- as.numeric(pre_Cab_doc$ADELANTO)\n #--SALDO - as numeric\n pre_Cab_doc$SALDO &lt;- as.numeric(pre_Cab_doc$SALDO)\n #--N\u00ba CPE - as character\n pre_Cab_doc$`N\u00ba CPE` &lt;- as.character(pre_Cab_doc$`N\u00ba CPE`)\n #--ESTADO - as factor\n pre_Cab_doc$ESTADO &lt;- as.character(pre_Cab_doc$ESTADO)\n\n  \n  ########################Change column names########################\n #--N\u00ba GENERADO\n names(pre_Cab_doc)[names(pre_Cab_doc) == \"N\u00ba ORDEN\"] &lt;- \"N_ORDEN\"  \n #--COD. CLIENTE\n names(pre_Cab_doc)[names(pre_Cab_doc) == \"COD. CLIENTE\"] &lt;- \"COD_CLIENTE\"\n #--N\u00ba CPE\n names(pre_Cab_doc)[names(pre_Cab_doc) == \"N\u00ba CPE\"] &lt;- \"N_CPE\"\n #To prevent differences with the TOTAL from Detalle_Fab!\n names(pre_Cab_doc)[names(pre_Cab_doc) == \"TOTAL\"] &lt;- \"TOTAL MOV.\"\n   \n#prevent duplicates based on ESTADO\n pre_Cab_doc &lt;- pre_Cab_doc %>% mutate(ESTADO=recode(ESTADO,\n\"ENTREGADA\"=\"AFIRMATIVO\",\n\"PROCESADA\"=\"AFIRMATIVO\",\n\"REGISTRADA\"=\"AFIRMATIVO\"\n))\n \n  \n #Return [dont forget]\n return(pre_Cab_doc)\n\n}\n\n\n#Loop\n#single\nlist_cab_doc &lt;- lapply(names_cab, f3)\n#list_ventas_dtll[[1]]\n\n\n\n\n\n#Convert each list #list_ventas_mov &amp; #list_ventas_dtll  to  tables \n\n#--ventas_dtll\ntb_bind_ventas_dtll &lt;- bind_rows(list_ventas_dtll) \n#tb_bind_ventas_dtll$NameFile &lt;- NULL\n\n#--ventas_mov\ntb_bind_ventas_mov &lt;- bind_rows(list_ventas_mov)\n#tb_bind_ventas_mov$NameFile &lt;- NULL\n\n#--cab_doc\ntb_bind_cab_doc &lt;- bind_rows(list_cab_doc) <\/pre>\n","protected":false},"excerpt":{"rendered":"<p>pacman::p_load(readxl, ggplot2, dplyr, psych, tidyr, stringr, plotly, readr,h2o, rstudioapi, randomForest, tibble, psych, padr, fpp2, lubridate, DT, tidyverse, xlsx, janitor,stringi, openxlsx, foreach) library(dplyr) li_bases &lt;- read_excel(&#8220;~\/Documents\/@\/CasaDelOptico2023\/Analisis\/data\/bases\/fabricaciones_bases_16-08-22_16-12-22.xlsx&#8221;, sheet = 1, col_names = FALSE) #&#8211;Adhoc&#8211;assign column names names(li_bases) &lt;- li_bases[2,] #&#8211;Adhoc&#8211;remove rows li_bases &lt;- li_bases[-c(1,2),] #Read RDS #Add Stock Min &amp; Max #stock.min at 28-10-21 ventas_All_Estab &lt;- readRDS(&#8220;~\/Documents\/@\/CasaDelOptico2023\/Analisis\/scripts\/loop_Ventas_detalle_allDistrib_19_04-19_08_v1.rds&#8221;) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-86","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/posts\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/comments?post=86"}],"version-history":[{"count":1,"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/posts\/86\/revisions"}],"predecessor-version":[{"id":87,"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/posts\/86\/revisions\/87"}],"wp:attachment":[{"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/media?parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/categories?post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/belenagurtoc.virgen.io\/tech\/wp-json\/wp\/v2\/tags?post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}