R:如何将变量拆分为命名区间?

R:如何将变量拆分为命名区间?,r,R,我正在R中处理一个相当大的数据集,其中包含一个连续的数值变量。在另一个数据集中,我命名了间隔,用最小值和最大值描述,我想将其应用于我的大数据集中的连续变量 下面是一些示例代码: df<-data.frame(x=c(1:6)) groups<-data.frame(cat=c("a","b","c","d"), min=c(1,2,4,6), max=c(2,4,5,8)) 有什么简单的方法可以做到这一点吗?dfdf设置数据: df<-data.frame(x=c(1

我正在R中处理一个相当大的数据集,其中包含一个连续的数值变量。在另一个数据集中,我命名了间隔,用最小值和最大值描述,我想将其应用于我的大数据集中的连续变量

下面是一些示例代码:

df<-data.frame(x=c(1:6))    
groups<-data.frame(cat=c("a","b","c","d"), min=c(1,2,4,6), max=c(2,4,5,8))
有什么简单的方法可以做到这一点吗?

df
df设置数据:

df<-data.frame(x=c(1:6))
groups<-data.frame(cat=c("a","b","c","d"), min=c(1,2,4,6), max=c(2,4,5,8))

for(i in 1:nrow(groups)){

  numbers_in_range = df$x[df$x >= groups[i,]$min & df$x <= groups[i,]$max]
  df[,i+1] = df$x %in% numbers_in_range
  colnames(df)[2:ncol(df)] = as.character(groups$cat)

}
df <- data.frame(x=c(1:6))    
groups <- data.frame(cat=c("a","b","c","d"), min=c(1,2,4,6), max=c(2,4,5,8))
设置数据:

df <- data.frame(x=c(1:6))    
groups <- data.frame(cat=c("a","b","c","d"), min=c(1,2,4,6), max=c(2,4,5,8))

你想要比在组上循环更简单的东西吗?
5
不应该在这里不对应任何东西,因为
d
转到6和7,而
c
转到4?你想要比在组上循环更简单的东西吗?
5
不应该在这里不对应任何东西,因为
d
转到6和7,而
c
转到4?
brks <- c(groups$min,tail(groups$max,1))
df$cat <- cut(df$x,breaks=brks,labels=groups$cat,right=FALSE)