2017-11-19 4 views
0

データフレームをカットした後、値がカットと交互になるようにバイナリフィールド(下記参照)をどのように追加できますか?Rバイナリ変数をカットに基づいて

x cut desired 
1.1 (1, 2] 0 
1.5 (1, 2] 0 
1.6 (1, 2] 0 
2.5 (2, 3] 1 
3 (2, 3] 1 
3.5 (3, 4] 0 
3.5 (3, 4] 0 
3.7 (3, 4] 0 

目標は2つだけの色を除いてthisと類似色でヒストグラムをggplotすることである。 enter image description here

(説明のためにのみ - 上記の値に対応していない)

+0

[Rのカット機能付き複製ラベルの使い方](https://stackoverflow.com/questions/45711863/how-to-use-duplicate-labels-with-cut-function-in- r)。そのアプローチはあなたの質問に簡単に適応できます: 'c(0,1,0)[as.numeric(cut、x、breaks = c(-Inf、2、3、4)))]' – duckmayr

答えて

0

あなたができこの方法を試してください。

set.seed(1) 
val <- sort(rnorm(100)) 
df <- data.frame(x = val, cut = cut(val,30)) 
df$desired <- as.numeric(df$cut) %% 2 

head(df, 10) 
#   x   cut cut_num desired 
# 1 -2.214700 (-2.22,-2.06]  1  1 
# 2 -1.989352 (-2.06,-1.91]  2  0 
# 3 -1.804959 (-1.91,-1.75]  3  1 
# 4 -1.523567 (-1.6,-1.45]  5  1 
# 5 -1.470752 (-1.6,-1.45]  5  1 
# 6 -1.377060 (-1.45,-1.29]  6  0 
# 7 -1.276592 (-1.29,-1.14]  7  1 
# 8 -1.253633 (-1.29,-1.14]  7  1 
# 9 -1.224613 (-1.29,-1.14]  7  1 
# 10 -1.129363 (-1.14,-0.984]  8  0 

編集: カットの途切れが空であることに注意してください(この例ではcut_num == 4を参照してください)。この場合、一見連続した折れ目は同じdesiredラベルになります。

関連する問題