R中是否有一个功能可以按百分比组分割矢量?

例如,我有一列:

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)

yanxiaoyong1234 回答:R中是否有一个功能可以按百分比组分割矢量?

您可以为此使用findIntervalcut

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))
本文链接:https://www.f2er.com/3162658.html

大家都在问