基于割集的R二元变量

基于割集的R二元变量,r,ggplot2,R,Ggplot2,切割数据帧后,如何添加二进制字段(见下文所需)以使值与切割交替 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 目标是绘制一个直方图,除了只有两种颜色外,其他颜色与类似: (仅用于说明-与上述值不对应)您可以尝试以下方法: set.seed(1) val <- sort(rnorm

切割数据帧后,如何添加二进制字段(见下文所需)以使值与切割交替

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
目标是绘制一个直方图,除了只有两种颜色外,其他颜色与类似:

(仅用于说明-与上述值不对应)

您可以尝试以下方法:

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
set.seed(1)
val可能是的副本。那里的方法很容易适应你的问题:
c(0,1,0)[as.numeric(cut(x,breaks=c(-Inf,2,3,4))]