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