我有一个大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)
我想在DESeq2分析中使用此df。我通过使用
unique(df)
使此df唯一,并尝试使用countData <- as.matrix(read.csv(file="df.csv", row.name="miRNAs", sep = ","))
打开,但它给出了此错误Error in read.table(file = file, header = header, sep = sep, quote = quote, : duplicate 'row.names' are not allowed
自从我制作了df
unique
以来,我不知道为什么这个错误不断 pop 。基本上,我想以这种方式读取df的原因是,当我键入(except the first column)
时,我想获取列标题colnames(df)
的列表。因为我需要执行FALSE TRUE测试,以查看是否匹配,这些匹配是否与另一个名为phenotype.csv all(rownames(phenotype) == colnames(countData))
的文件的行名匹配
最佳答案
在row.name="miRNAs"
参数中,您不是在访问相应的列,而是在使用长度为一个的字符 vector 。然后将其回收,这就是您得到错误的原因。导入时不使用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
由reprex package(v0.3.0)创建于2020-02-19
关于r - 使用R指定row.name来打开CSV文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60299878/