Extraer con número de la función IC2

Aug 31 2020

Intento extraer un número de la función calcSConc (paquete IC2). Puedo extraer el número que necesito por separado en dos pasos:

#CODE
library(IC2)
library(dplyr)

DATA_REFORM<-rnorm(1000, 3, .25)
DATA_REFORM1<-rnorm(5000, 6, .50)

dn_0<-calcSConc(DATA_REFORM,DATA_REFORM1)
dn_1<-data.frame(dn_0[[1]])
dn_1<-round(dn_1,6)
dn_1

La salida de estas funciones es la siguiente:

         index parameter
SConc 0.000115         2

Así que mi intención es poner este único número 0.000115 en el marco de datos con el siguiente código:

INEQ_TOTAL_INCOME_OUTPUT<-data.frame(
  "Concentration coefficient of taxes with respect to pre-tax"= round(IC2::calcSConc(DATA_REFORM,DATA_REFORM1),6)
  check.names = FALSE
)

Entonces, ¿alguien puede ayudarme a corregir este código y obtener el resultado 0.000115 pero en el marco de datos?

Respuestas

1 akrun Aug 31 2020 at 02:04

Si marcamos el str, es un anidadolist

str(dn_0)
#List of 2
# $ ineq:List of 2 # ..$ index    : Named num -0.00054
#  .. ..- attr(*, "names")= chr "SConc"
#  ..$ parameter: Named num 2 # .. ..- attr(*, "names")= chr "param" # $ nas :List of 4
#  ..$ xNA : num 0 # ..$ yNA    : num 0
#  ..$ wNA : NULL # ..$ totalNA: int -4000

Entonces, podríamos extraer directamente esos componentes con [[o $. Aquí, podríamos hacer el data.framedirectamente en el componente 'ineq' extraído

d1 <- transform(data.frame(IC2::calcSConc(DATA_REFORM, 
          DATA_REFORM1)$ineq), index = round(index, 6))

y cambiar el nombre de la primera columna

names(d1)[1] <-  "Concentration coefficient of taxes with respect to pre-tax"
d1
#      Concentration coefficient of taxes with respect to pre-tax parameter
#SConc                                                   -0.00054         2
1 RonakShah Aug 31 2020 at 08:09

Puede extraer solo la indexparte de la salida:

data.frame("Concentration coefficient of taxes with respect to pre-tax" = 
           round(IC2::calcSConc(DATA_REFORM,DATA_REFORM1)[[1]]$index,6), 
           check.names = FALSE)

#      Concentration coefficient of taxes with respect to pre-tax
#SConc                                                  -0.000252