r - R中是否有任何方法可以将第一列作为标题
问题描述
我想将表数据的第一列作为 R 中的标题。
X sub1 sub2 sub3........
carnitine 0 1 1
betaine 0 0 0
acetate 1 1 1
iodine 0 1 0
fluconazole 0 0 1
.
.
.
这是用于读取文本文件的函数。
InitFeatures<-function(namefeatures){
p0<-paste0("./", namefeatures)
features <- as.matrix(utils::read.delim(p0, sep="\t"))
return(features)
}
所以当我运行命令时features<-InitFeatures("abc.txt")
,只创建行标题。我希望列 X 也应该作为标题。
解决方案
一种选择可以是:
将第一列作为标题
请注意,如果要将第一列作为标题,则列和行的长度必须相同。否则,您将拥有比列更多的名称,反之亦然。
#Get names
names(df) <- df[,1]
#Remove first column
df <- df[,-1]
#Sample data
df <- read.table(text = "X sub1 sub2 sub3
carnitine 0 1 1
betaine 0 0 0
acetate 1 1 1", stringsAsFactors = FALSE)
当列长和行不同时,第一列作为标题
#Repeat names according to the number of columns
names(df) <- rep(df[,1], dim(df)[2])[1:dim(df)[2]]
#Sample data
require(tidyverse)
df <- data.frame(matrix(nrow = 3, ncol = 10)) %>%
mutate(X1 = letters[1:3])
将第一行作为标题
#Get names from first row
names(df) <- paste(df[1,])
#delete first row
df <- df[-1,]
结果:
X sub1 sub2 sub3
2 carnitine 0 1 1
3 betaine 0 0 0
4 acetate 1 1 1
5 iodine 0 1 0
6 fluconazole 0 0 1
样本数据:
df <- read.table(text = "X sub1 sub2 sub3
carnitine 0 1 1
betaine 0 0 0
acetate 1 1 1
iodine 0 1 0
fluconazole 0 0 1", stringsAsFactors = FALSE)
推荐阅读
- ios - 同步 CABasicAnimation 和 UIView.animate 相同
- vb.net - 单击运行 Javascript 的字符串
- linux - Linux:chmod 无效模式
- android - 如何在查尔斯代理工具android中停止识别Web服务请求
- c - 使用 c 库进行构建,遇到了 stdlib.h 中的重复成员
- javascript - 如何在角度 5 中将一个对象值与另一个对象值进行比较
- aws-lambda - 启动 api 测试时如何访问 AWS SAM LOCAL 中的私有 AWS 资源
- javascript - React JS 和 Redux:this.props。未定义
- ruby-on-rails - will_paginate 不为页面创建 URL
- sql - 在Oracle中制作逗号分隔的字符串