我试图从calcSConc函数(IC2包)中提取一个数字。我可以通过两个步骤分别提取我需要的数字:
#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此函数的输出数字如下:
index parameter
SConc 0.000115 2所以我的意图是将这个唯一的数字0.000115放入数据帧中,代码如下:
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
)那么,谁能帮我修复这个代码,并得到结果0.000115,但进入数据帧?
发布于 2020-08-31 03:04:32
如果我们检查str,它就是一个嵌套的list
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因此,我们可以使用[[或$直接提取这些组件。在这里,我们可以直接在提取的'ineq‘组件上创建data.frame
d1 <- transform(data.frame(IC2::calcSConc(DATA_REFORM,
DATA_REFORM1)$ineq), index = round(index, 6))并将第一列重命名为
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发布于 2020-08-31 09:09:16
您只能从输出中提取index部件:
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.000252https://stackoverflow.com/questions/63660718
复制相似问题