Один из вариантов может быть:
Чтобы получить первый столбец в качестве заголовка
Обратите внимание, что если вы хотите, чтобы ваш первый столбец был заголовком, длина столбцов и строк должна быть одинаковой.В противном случае у вас будет больше имен, чем столбцов, и наоборот.
#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)