例如,我有一列:
x <- c(-0.5,1.1,6.0,4.5,0.1,-0.2)
我想添加一个新列,其中每个值都分配有3个百分比组 例如:
- 如果x -3 组-3
- 如果x 3 第6组
所以我将有一个新列: c(-3、3、9、6、3,-3)
例如,我有一列:
x <- c(-0.5,1.1,6.0,4.5,0.1,-0.2)
我想添加一个新列,其中每个值都分配有3个百分比组 例如:
所以我将有一个新列: c(-3、3、9、6、3,-3)
您可以为此使用findInterval
或cut
x <- c(-0.5,1.1,6.0,4.5,0.1,-0.2)
brks <- seq(-3,9,3)
lbls <- c(-3,3,6,9)
lbls[findInterval(x,brks)]
#[1] -3 3 9 6 3 -3
或@StupidWolf使用cut
cut(x,breaks=brks,right=FALSE,labels=lbls)
,
Base R解决方案:
# Define the value using the ranges:
num_frame$perc_group <- ifelse(num_frame$num_vec < 0 & num_frame$num_vec >= -3,-3,ifelse(num_frame$num_vec == 0,ifelse(num_frame$num_vec > 0 & num_frame$num_vec <= 3,6)))
数据:
num_frame <- structure(list(num_vec = c(-0.5,-0.2)),class = "data.frame",row.names = c(NA,-6L))