0
 sample
      Symobls  IDs Value1 Value2 Value3
 1     NA      NA   3.1    2.3    1.7
 2     TP53   1234  5.8    6.9    10.1
 3     Kras   5678  0.1    0.3    0.5
 4     NA      NA   10.3   2.1    7.9
 5     Hras   9991  20.0   30.0   40.0
 6     TP53   1234  -3.1   0.2    1.7

我的桌子看起来像这样。我需要按行或按列计算值。所以,我尝试使用符号作为新的行名。这样,我可以通过使用 sample[,"Hras"] 计算整行值尝试这样做时,我遇到了这个问题。

行名(样本)<-样本[,1]

错误row.names<-.data.frame*tmp*, value = value) :不允许重复的 'row.names' 另外:警告消息:设置 'row.names' 时的非唯一值:'A1CF'、'A2M'、'A2ML1'、'AAGAB'、' AAK1'、'AAMDC'、'AARS2'、'AASDH'、'AASDHPPT'、'AASS'、'ABAT'、'ABCA1'、'ABCA13'、'ABCA2'、'ABCA4'、'ABCA5'、'ABCA8' 、'ABCA9'、'ABCB1'、'ABCB11'、'ABCB4'、'ABCB5'、'ABCB6'、'ABCB8'、'ABCB9'、'ABCC1'、'ABCC10'、'ABCC11'、'ABCC12'、' ABCC13'、'ABCC3'、'ABCC4'、'ABCC5'、'ABCC6'、'ABCC8'、'ABCC9'、'ABCD3'、'ABCD4'、'ABCE1'、'ABCF2'、'ABCG1'、'ABHD1' 、'ABHD10'、'ABHD11'、'ABHD12'、'ABHD13'、'ABHD17B'、'ABHD2'、'ABHD5'、'ABHD6'、'ABI1'、'ABI2'、'ABI3BP'、'ABL2'、' ABLIM1'、'ABLIM2'、'ABO'、'ABR'、'ABRA'、'ABTB1'、'ABTB2'、'ACAA1'、'ACAA2'、'ACACA'、'ACACB'、'ACAD10'、'ACADL' , 'ACADSB', 'ACAN', 'ACAP1', 'ACAP2', 'ACAP3', 'ACAT1', �� [... 截断]

这是因为“NA”吗?其他选择?谢谢

这是一个微阵列数据集。我已经完成了标准化,并准备提取几个基因的值来执行绘图、互相关和 t 检验。事实上,不仅 NA,而且我将用于绘制图形的几个基因都有多行。所以,我需要将它们提取到另一个表中以备后用。

4

1 回答 1

0

在这里,我只是row.names按照您在问题中的要求回答一种更改方法。最终目标尚不清楚。对于指定的问题,您可以尝试使用make.nameswith option unique=TRUE。这将确保重复项以不同的方式命名。在第一列中,有一些NA值,它们将被命名为NA.NA..1等等。(如果这对你来说可以的话)。

 row.names(sample) <- make.names(sample[,1],TRUE)

或者正如@Richard Scriven 评论的那样,

row.names(sample) <- paste(make.unique(df[,1]))

另一种选择是转换data.framematrix(这将允许重复值)。columns只有当它们属于同一类时,我才会推荐这个。例如,如果您有characternumeric列,这会将所有列转换为character类。在您的数据集中,在我看来,除了第一列之外,所有其他列都是数字(“IDs”列可能除外)。但同样,这些NA值将是一个问题。如果您想根据行名对“第一”或“第三”行进行子集化,这将很困难。

sample1 <- as.matrix(sample[,-1])
row.names(sample1) <- sample[,1]
sample1['Hras',]
#  IDs Value1 Value2 Value3 
#  9991     20     30     40 
于 2015-01-05T17:32:14.843 回答