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

为何slice_head返回行数超出指定n?如何仅获取DataFrame首行?

问题

创建了一个7行的tibble数据框,期望获取整个数据框的第一行:

library(tibble)
df <- tibble(
  group = rep(c("b", "c", "a"), c(1, 2, 4)),
  x = runif(7)
)

# 数据框内容
df
# A tibble: 7 × 2
  group      x
  <chr>  <dbl>
1 b     0.269 
2 c     0.0697
3 c     0.705 
4 a     0.772 
5 a     0.513 
6 a     0.841 
7 a     0.896 

但使用group_by(group) %>% slice_head(n = 1)后,返回了每个分组的首行(共3行),而非预期的一行,需要实现仅返回整个数据框第一行的需求。

解决方案

问题出在多了group_by(group)步骤——分组后slice_head(n=1)会对每个分组单独取首行,所以得到3行结果。去掉分组操作,直接对整个数据框调用取行函数即可,以下是几种常用方法:

方法1:直接用slice_head

df %>% slice_head(n = 1)

方法2:简洁的slice调用

df %>% slice(1)

方法3:基础R的head函数

head(df, 1)

以上三种方法都会返回整个数据框的第一行:

# A tibble: 1 × 2
  group     x
  <chr> <dbl>
1 b     0.269

内容的提问来源于stack exchange,提问作者Nina van Bruggen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 18:25:18