在R语言中创建按数值区间分组的向量分层DataFrame
R语言实现指定分组规则的DataFrame构建
需求说明
将三个向量按以下规则分组后构建DataFrame:
- 数值小于30 → 标记为
low - 数值在30到50之间(含边界)→ 标记为
average - 数值大于50 → 标记为
High
最终DataFrame以low、average、High为行名,v1、v2、v3为列名,对应位置填充符合区间的数值。
实现代码
# 定义输入向量 v1 = c(32,60,20) v2 = c(60,10,40) v3 = c(90,45,15) # 定义分组规则:键为分组名,值为判断函数 group_rules <- list( low = function(x) x < 30, average = function(x) x >= 30 & x <= 50, High = function(x) x > 50 ) # 构建结果DataFrame result_df <- data.frame( v1 = sapply(group_rules, function(rule) list(v1[rule(v1)])), v2 = sapply(group_rules, function(rule) list(v2[rule(v2)])), v3 = sapply(group_rules, function(rule) list(v3[rule(v3)])) ) # 调整行名为分组名 rownames(result_df) <- names(group_rules)
输出结果
运行代码后得到的DataFrame如下:
v1 v2 v3 low 20 10 15 average 32 40 45 High 60 60 90
如果需要保留单元格的向量格式(例如显示为c(20)),直接打印result_df即可,此时每个单元格存储的是对应区间的数值向量。
内容的提问来源于stack exchange,提问作者tonee
相关产品推荐
相关产品推荐

