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

如何使用R原生管道重置数据框的连续行名?

如何用R原生管道重置数据框的连续行号?

问题场景

先看这个最小示例:

df <- data.frame(x = c(10, NA, 30, 40, 50),                  
                  y = c(10, 20, NA, 40, 50))

df <- df |>
       na.omit() |>
       `colnames<-`(c("You", "Me")) 

执行后得到的数据框行号是不连续的:

> df
      You Me
1  10 10
4  40 40
5  50 50

我们需要把行号重置为从1开始的连续序号,虽然单独执行rownames(df) <- NULL可以实现,但希望像修改列名那样,用R原生管道完成这个操作。


解决方案

方法1:沿用修改列名的思路,用rownames<-函数

和修改列名的写法一致,直接在管道链中调用rownames<-并传入NULL:

df <- df |>
  na.omit() |>
  `colnames<-`(c("You", "Me")) |>
  `rownames<-`(NULL)

# 查看结果
df

输出结果:

You Me
1  10 10
2  40 40
3  50 50

方法2:用set_rownames函数(更易读)

R的stats包自带set_rownames函数,语法更直观,适合管道操作:

df <- df |>
  na.omit() |>
  `colnames<-`(c("You", "Me")) |>
  set_rownames(NULL)

# 查看结果
df

运行后同样会得到行号连续的数据框。


内容的提问来源于Stack Exchange,提问作者Thomas Philips

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:18:27