2017-03-10 17 views
0

私はrの学習段階にいます。 私はvifcor(vardata,th=0.4,maxobservations =50000)を使用していますが、複線でない変数を見つけるのにrでlibrary(usdm)を使用しています。さらなる分析のために構造化データフレームにvifcor(vardata,th=0.4,maxobservations =50000)の結果を得る必要があります。私が使用していますrのデータフレームにパッケージ関数の結果を得る方法

データ読み出し処理:

pointid grid_code Blocks_line_dst_CHT GrowthCenter_dst_CHT Roads_nationa_dst_CHT Roads_regiona_dst_CHT Settlements_CHT_line_dst_CHT Small_Hat_Bazar_dst_CHT Upazilla_lin_dst_CHT resp 
1 6 150 4549.428711 15361.31836 3521.391846 318.9043884 3927.594727 480 1 
2 6 127.2792206 4519.557617 15388.68457 3500.24292 342.0526123 3902.883545 480 1 
3 2 161.5549469 4484.473145 15391.6377 3436.539063 335.4101868 3844.216553 540 1 

私の試み:csvファイルの

performdata <- read.csv('F:/DGDNDRV_FINAL/OutputTextFiles/data_blk.csv') 
vardata <-performdata[,c(names(performdata[5:length(names(performdata))-2])] 

コンテンツ

  • r<-vifcor(vardata,th=0.2,maxobservations =50000)戻り
2 variables from the 6 input variables have collinearity problem: 

Roads_regiona_dst_CHT GrowthCenter_dst_CHT 

After excluding the collinear variables, the linear correlation coefficients ranges between: 
min correlation (Small_Hat_Bazar_dst_CHT ~ Roads_nationa_dst_CHT): -0.04119076963 
max correlation (Small_Hat_Bazar_dst_CHT ~ Settlements_CHT_line_dst_CHT): 0.1384278434 

---------- VIFs of the remained variables -------- 
        Variables   VIF 
1   Blocks_line_dst_CHT 1.026743892 
2  Roads_nationa_dst_CHT 1.010556752 
3 Settlements_CHT_line_dst_CHT 1.038307666 
4  Small_Hat_Bazar_dst_CHT 1.026943711 
    class(r)
  • 戻り
[1] "VIF" 
attr(,"package") 
[1] "usdm" 
    mode(r)
  • 戻り"S4"

データフレームにはRoads_regiona_dst_CHT GrowthCenter_dst_CHT、別のデータフレームにはVIFs of the remained variablesが必要です。

何も問題ありませんでした。

+0

どのようにされましたバルダータが作成されましたか? http://stackoverflow.com/help/mcveを参照してください。 – greengrass62

答えて

1

基本的にresturned結果はS4クラスであり、あなたは@オペレータ経由のスロットを抽出することができます。

library(usdm) 
example(vifcor) # creates 'v2' 
str(v2) 
# Formal class 'VIF' [package "usdm"] with 4 slots 
# [email protected] variables: chr [1:10] "Bio1" "Bio2" "Bio3" "Bio4" ... 
# [email protected] excluded : chr [1:5] "Bio5" "Bio10" "Bio7" "Bio6" ... 
# [email protected] corMatrix: num [1:5, 1:5] 1 0.0384 -0.3011 0.0746 0.7102 ... 
# .. ..- attr(*, "dimnames")=List of 2 
# .. .. ..$ : chr [1:5] "Bio1" "Bio2" "Bio3" "Bio8" ... 
# .. .. ..$ : chr [1:5] "Bio1" "Bio2" "Bio3" "Bio8" ... 
# [email protected] results :'data.frame': 5 obs. of 2 variables: 
# .. ..$ Variables: Factor w/ 5 levels "Bio1","Bio2",..: 1 2 3 4 5 
# .. ..$ VIF  : num [1:5] 2.09 1.37 1.25 1.27 2.31 

ですから、経由今resultsexcludedスロットを抽出することができます。

[email protected] 
# [1] "Bio5" "Bio10" "Bio7" "Bio6" "Bio4" 
[email protected] 
# variables  VIF 
# 1  Bio1 2.086186 
# 2  Bio2 1.370264 
# 3  Bio3 1.253408 
# 4  Bio8 1.267217 
# 5  Bio9 2.309479 
1

スロット 'results'の情報をデータフレームに取得するには、次のコマンドを使用できます。あなたの最初の2行分のVIFを与えるだろう:あなたは、その後の結果[2,2 1] @ rは注意が

df <- [email protected] 

伝統的な方法を使用して別のデータフレームに出て情報を分割することができます。

関連する問題