2017-02-07 10 views
1

ゴール

私は別の変数から値を使用してRでのカテゴリ(例えば、文字列)変数を作成しようとすると、特定の基準に基づいています。問題の文字列と変数を再コーディング

問題

これは実際にデータを再コード化していないようです。私はデータを変換していますが、私はどちらの方法ではわかりません。データ

説明私は分析の国ヶ月単位で構造化されたデータフレームを持っています。変数の1つはgovernanceであり、連続しています。それは0.750から4.333の範囲です。

手順は、私がガバナンスの4つの異なる幅広いグループのラベルを作成したカテゴリ変数を作成しようとしています

を撮影します。ここで

は、私が試したものです:

syndromes$syndrome_cat <- NA 
syndromes$syndrome_cat[syndromes$governance <= 1.645] <- "Category 1" 
syndromes$syndrome_cat[syndromes$governance >= 1.646 & syndromes$governance <= 2.541] <- "Category 2" 
syndromes$syndrome_cat[syndromes$governance >= 2.542 & syndromes$governance <= 3.437] <- "Category 3" 
syndromes$syndrome_cat[syndromes$governance >= 3.438] <- "Category 3" 

残念ながら、これは、異なる値をリストにはなりませんが、代わりにこの、その結果:

summary(variable) 
Length  Class  Mode 
14256  character character 

私はデータを調べるときに、私が見ますこの:

head(syndromes$governance) 
[1] NA NA NA NA NA NA 

私は間違っていますか?

ありがとうございます! dplyr

+1

'help(cut)'を参照してください。新しい列の結果を使用して、「ガバナンス」をカットして新しいラベルを作成することができます。 –

+0

コードがどこで失敗したかを理解するために、データのサンプルが必要な場合があります。各列のタイプを一度再確認してください。 –

+0

ありがとう、@RichScriven!それは完璧に働いた。 – Yasha

答えて

2

(@Richスクリヴンも示唆したように)ただ、これを使用し、また、あなたが間隔の左/右サイドを除く/含めることによってcutのデフォルトの動作を変更することができます

syndromes$syndrome_cat <- cut(syndromes$governance, breaks=c(-Inf,1.645, 2.541, 3.437,Inf), 
                labels=paste('Category', 1:4)) 
+1

申し訳ありません...投稿中にあなたの答えが表示されませんでした –

+0

大丈夫@ joel.wilson –

+1

問題が解決しました!ありがとう、サンディパン! – Yasha

1

mydf %>% 
    mutate(group = case_when(.$governance < 1.646 ~ 'Cat1', 
         between(.$governance, 1.646, 2.541) ~ 'Cat2', 
         between(.$governance, 2.542, 3.437) ~ 'Cat3', 
         .$governance > 3.438 ~ 'Cat4')) 
+0

ありがとう、@ガンバ - 私はこれをdplyrを使って試してみる必要があります。私はあなたの助けに感謝します! – Yasha