Ошибка при открытии файла CSV с указанием row.name с помощью R - PullRequest
1 голос
/ 19 февраля 2020

У меня большой df (формат CSV), который выглядит следующим образом:

miRNAs <- c('mmu_mir-1-3p','mmu_mir-1-5p','mmu-mir-6-5p','mmu-mir-6-3p')
cca <- c('12854','5489','54485','2563')
ccb <- c('124','589','5465','25893')
taa <- c('12854','589','5645','763')
df <- data.frame(miRNAs,cca,ccb,taa)

, и я хочу использовать этот df в анализе DESeq2. Я сделал этот df уникальным с помощью unique(df) и попытался открыть с помощью countData <- as.matrix(read.csv(file="df.csv", row.name="miRNAs", sep = ",")), но он выдает эту ошибку

Ошибка в read.table (file = file, header = header, sep = sep, quote = quote,: дубликаты 'row.names' не допускаются

Поскольку я сделал df unique, я не знаю, почему эта ошибка продолжает появляться. Таким образом, df заключается в том, что я хочу получить список заголовков моих столбцов (except the first column), когда набираю colnames(df), потому что мне нужно выполнить тест FALSE TRUE, чтобы проверить, совпадают ли они с именами строк другого файла, называемого фенотипом. CSV all(rownames(phenotype) == colnames(countData))

1 Ответ

1 голос
/ 19 февраля 2020

В аргументе row.name="miRNAs" вы не обращаетесь к соответствующему столбцу, но используете вектор длиной в один символ. Это затем перерабатывается, и поэтому вы получаете ошибку. Импортируйте без аргумента row.names, и если вы действительно хотите, чтобы эта переменная использовалась в качестве имени строки вместо столбца, то сделайте это после импорта:

df <- data.frame(
  miRNAs = c('mmu_mir-1-3p','mmu_mir-1-5p','mmu-mir-6-5p','mmu-mir-6-3p'),
  cca = c('12854','5489','54485','2563'),
  ccb = c('124','589','5465','25893'),
  taa = c('12854','589','5645','763')
  )

rownames(df) <- df$miRNAs
df$miRNAs <- NULL
df
#>                cca   ccb   taa
#> mmu_mir-1-3p 12854   124 12854
#> mmu_mir-1-5p  5489   589   589
#> mmu-mir-6-5p 54485  5465  5645
#> mmu-mir-6-3p  2563 25893   763

Создано в 2020-02-19 с помощью Представить пакет (v0.3.0)

...