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

在R中将Parquet文件最后一列设为DataFrame索引时出错

解决Parquet文件转DataFrame时设置行名的错误

错误原因

  1. read_parquet默认返回tibble类型数据,而tibble已弃用设置行名的操作,因此会出现警告。
  2. 原代码中df[,ncol(df)]提取的是单列tibble,而非向量。rownames<-要求赋值的是长度等于数据行数的向量,单列tibble的长度为1(列数),与行数不匹配,触发invalid 'row.names' length错误。

修正方案

方案1:转为普通DataFrame处理

# 读取文件并转换为普通dataframe
df <- as.data.frame(read_parquet("file.parquet.gz"))
# 提取最后一列的向量值作为行名
rownames(df) <- df[[ncol(df)]]
# 删除最后一列
df <- df[, -ncol(df)]

这里用df[[ncol(df)]]直接提取列的向量值,而非tibble列。

方案2:用dplyr工具处理(推荐)

借助dplyr的column_to_rownames函数,一步完成行名设置和列删除,同时适配tibble:

library(dplyr)

df <- read_parquet("file.parquet.gz") %>%
  column_to_rownames(var = names(.)[ncol(.)])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:00:53