首页 > 解决方案 > 前两列定义为“行名”

问题描述

我想将数据框的前两列定义为行名。实际上我想做一些计算,并且数据框必须是数字的。

data.frame <- data_frame(id=c("A1","B2"),name=c("julia","daniel"),BMI=c("20","49"))

BMI 的值是数字的(用 is.numeric 证明),但总体上的 data.frame 不是。如何将前两列(id 和 name)定义为行名?提前感谢您的任何建议

标签: rtibblerowname

解决方案


您可以组合idname列,然后分配行名

data.frame %>%
  tidyr::unite(rowname, id, name) %>%
  tibble::column_to_rownames()

#          BMI
#A1_julia   20
#B2_daniel  49

在基础 R 中,您可以在步骤中执行相同的操作

data.frame <- as.data.frame(data.frame)
rownames(data.frame) <- paste(data.frame$id, data.frame$name, sep = "_")
data.frame[c('id', 'name')] <- NULL

推荐阅读