r - 前两列定义为“行名”
问题描述
我想将数据框的前两列定义为行名。实际上我想做一些计算,并且数据框必须是数字的。
data.frame <- data_frame(id=c("A1","B2"),name=c("julia","daniel"),BMI=c("20","49"))
BMI 的值是数字的(用 is.numeric 证明),但总体上的 data.frame 不是。如何将前两列(id 和 name)定义为行名?提前感谢您的任何建议
解决方案
您可以组合id
和name
列,然后分配行名
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
推荐阅读
- ruby-on-rails - Keda 不扩展超过 1 个 Pod
- angular - 在 Angular 中,为什么要使用管道而不是原生 JavaScript 函数?
- amazon-web-services - 无法从单个存储桶在 AWS 胶水中设置多个表
- amazon-web-services - 配置后更新 terraform 资源
- javascript - 具有多个对象和多个过滤器的过滤器数组
- webpack - Vue CLI 4.x,如何更改 babel-loader 之前和 ts-loader 之后的规则加载器?
- reactjs - React State Fields with Array of Objects
- c# - 如何以编程方式执行“清除文件资源管理器历史记录”
- javascript - iOS/Android 不显示键盘加载
- javascript - onmouseover 函数工作,但 onmouseout 函数不工作?