IC2関数から番号で抽出
Aug 31 2020
calcSConc関数(パッケージIC2)から1つの数値を抽出しようとしています。必要な番号を2つのステップで個別に抽出できます。
#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を取得する方法を助けてくれますが、データフレームに入れますか?
回答
1 akrun Aug 31 2020 at 02:04
をチェックする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
したがって、[[またはを使用してこれらのコンポーネントを直接抽出でき$ます。ここではdata.frame、抽出された「ineq」コンポーネントを直接作成できます。
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
1 RonakShah Aug 31 2020 at 08:09
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.000252