You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言的case_when中结合head()与tail()实现数据分类

R数据框行分类实现方案

核心说明

你原有写法无法运行的原因是:head()、tail()默认返回数据框的行子集,而case_when()的每个判断条件需要返回和数据框行数长度一致的逻辑向量,因此不能直接将head(10)、tail(10)作为判断条件。

如果坚持要在case_when()内通过head()、tail()函数完成分类,可以通过匹配行号的方式实现,满足你不使用row_number()直接比较大小的需求,代码如下:

library(dplyr)
df %>%
  mutate(z = case_when(
    row_number() %in% head(row_number(), 10) ~ "top_n",
    row_number() %in% tail(row_number(), 10) ~ "last_n",
    TRUE ~ "middle"
  ))

效果验证

运行上述代码后,输出结果和你给出的预期输出完全一致,前10行标记为top_n,后10行标记为last_n,中间12行标记为middle。


内容的提问来源于stack exchange,提问作者TarJae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:24:04