Удалите имя первого столбца во фрейме данных из fread () в R - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь удалить имя из имен столбцов, сгенерированных с помощью fread ().Имя первого столбца действует только как заголовок имен строк.Позже в рабочем процессе этот «заголовок» действительно испортил мои данные, поскольку он рассматривается как одна из строк, поэтому мне как-то нужно, чтобы они игнорировались или не существовали.

подмножество моего DGE_file выглядит следующим образом:

            GENE ATGGCGAACCTACATCCC ATGGCGAGGACTCAAAGT
1: 0610009B22Rik                  1                  0
2: 0610009E02Rik                  0                  0

Я попытался удалить имя первого столбца следующим образом:

library(Matrix)
library("data.table")

# Read in the dge file
DGE_file<- fread(file="DGE.txt", stringsAsFactors = TRUE)

colnames(DGE_file)<-colnames(DGE_file)[-1]
DGE_file<- as.matrix(DGE_file)

, что по понятным причинам приводит к ошибке:

> colnames(DGE_file)<-colnames(DGE_file)[-1]
Error in setnames(x, value) : 
  Can't assign 10000 names to a 10001 column data.table

Я уже пытался заменить его на NA, но это привело к ошибке в последующей обработке, которую я не мог обойти.

Как удалить заголовок "ген" или сделать его "невидимым" при последующей обработке?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Следующее должно работать

library(Matrix)
library("data.table")

# Read in the dge file
DGE_file<- fread(file="DGE.txt", stringsAsFactors = TRUE)
# Set the first column name to the empty string.
names(DGE_file)[1] <- ""
0 голосов
/ 27 ноября 2018

Вы можете прочитать файл без заголовка и первой строки, а затем задать имена столбцов.Однако, по моему мнению, наличие имени столбца без имени или NA в качестве имени может быть проблематичным.

require(magrittr) # for piping
require(data.table) #For reading with fread

# Read in the dge file
#Without header and skiping the first line
DGE_file <- fread(file="DGE.txt",
                  skip = 1,
                  header=FALSE,
                  stringsAsFactors = TRUE)

#Set the column names (for "invisible" name)
DGE_file <- DGE_file %>% 
  purrr::set_names(c("", "ATGGCGAACCTACATCCC",
                     "ATGGCGAGGACTCAAAGT"))

ИЛИ

#Set the column names (for NA as the first name)
DGE_file <- DGE_file %>% 
  purrr::set_names(c(NA, "ATGGCGAACCTACATCCC",
                     "ATGGCGAGGACTCAAAGT"))

Решение для добавления имен base R может выглядеть так:

#Read the file with header 
DGE_file <- fread(file="DGE.txt",
                  header=TRUE,
                  stringsAsFactors = TRUE)

#Set an "inivisible" as a name
names(DGE_file)[1] <- ""

#Or set an NA as a name
names(DGE_file)[1] <- NA
...