2017-06-27

Cómo extraer el número de la semana de una fecha en R


Problema

Queremos extraer el número de la semana de un vector de fechas en R.

c("2014-03-16", "2014-03-17","2014-03-18", "2014-01-01")
[1] "2014-03-16" "2014-03-17" "2014-03-18" "2014-01-01"

Solución

Empleamos la función strftime con el argumento %V para obtener el número de la semana (01–53) definido según la norma ISO 8601. Más información en la documentación: ?strftime

strftime(c("2014-03-16", "2014-03-17","2014-03-18", "2014-01-01"), format = "%V")
[1] "11" "12" "12" "01"

Entradas relacionadas

Referencias

2017-06-07

Obtener el nombre de usuario de Windows con VBA en Excel

Problema

Necesitamos conocer el nombre de usuario de Windows en Excel. Por ejemplo, porque en función del mismo, mostraremos una información distinta al usuario que abra el fichero de Excel.

Solución

  1. Abrimos el Editor de Microsoft Visual Basic: Alt+F11.
  2. Copiamos la siguiente subrutina en un módulo.
    • Sub usuario()
      MsgBox Environ("UserName")
      End Sub
      
  3. Ejecutamos la subrutina: F5.
  4. Aparecerá un mensaje emergente con el nombre de usuario de Windows.
También podemos simplemente teclear en la ventana de inmediato:

?Environ("Username")
O capturar el nombre en una celda para personalizar la hoja en función de la misma.

Sub usuario()
Sheets("Hoja1").Range("A1") = Environ("UserName")
End Sub

Referencias

2017-06-04

Eliminar separador de miles de una columna en R

Problema

Queremos eliminar el separador de miles del siguiente data frame

    a          b
1   1 16,244,600
2   2  8,227,103
3   3  5,959,718
4   4  3,428,131
5   5  2,612,878
6   6  2,471,784
7   7  2,252,664
8   8  2,014,775
9   9  2,014,670
10 10  1,841,710

  • Datos originales
  • structure(list(a = 1:10, b = structure(c(2L, 10L, 9L, 8L, 7L, 
    6L, 5L, 4L, 3L, 1L), .Label = c("1,841,710", "16,244,600", "2,014,670", 
    "2,014,775", "2,252,664", "2,471,784", "2,612,878", "3,428,131", 
    "5,959,718", "8,227,103"), class = "factor")), .Names = c("a", 
    "b"), class = "data.frame", row.names = c(NA, -10L))
    

    Solución

    Empleamos la función gsub para encontrar y reemplazar la coma, y as.numeric para converir la columna en número.

    data$b <- as.numeric(gsub(",", "", data$b))
    data
    
        a        b
    1   1 16244600
    2   2  8227103
    3   3  5959718
    4   4  3428131
    5   5  2612878
    6   6  2471784
    7   7  2252664
    8   8  2014775
    9   9  2014670
    10 10  1841710
    

    Entradas relacionadas

    Referencias

    Nube de datos