一起使用paste()和rep()的问题

时间:2019-06-28 14:49:15

标签: r dataframe for-loop formatting row

我正尝试使用以下语法重命名数据框的行:字母C和列号。但是,我需要数字具有4位数字,因为这将使以后的排序更加容易。有5631行,因此,例如,我希望C0001是第一行,C0124是第124行,C2493是第2493行,依此类推。

我认为我可以在一系列循环中做到这一点,并且在前10行中效果很好:

for(i in 1:9){
  rownames(data)[i] = paste("C", 0, 0, 0, i, sep = "")
}

但是,当我尝试对10-99行进行操作时,出现以下错误:

for(i in 10:99){
  rownames(data)[i] = paste("C", 0, 0, i, sep = "")
}

Error in `.rowNamesDF<-`(x, value = value) : invalid 'row.names' length

这是发生了什么

rownames(data)[1:99]
 [1] "G0001" "G0002" "G0003" "G0004" "G0005" "G0006" "G0007" "G0008" "G0009"
[10] "G0010" "G0011" "G0012" "G0013" "G0014" "G0015" "G0016" "G0017" "G0018"
[19] "G0019" "G0020" "G0021" "G0022" "G0023" "G0024" "G0025" "G0026" "G0027"
[28] "G0028" "G0029" "G0030" "G0031" "G0032" "G0033" "G0034" "G0035" "G0036"
[37] "G0037" "G0038" "G0039" "G0040" "G0041" "G0042" "G0043" "G0044" "G0045"
[46] "G0046" "G0047" "G0048" "G0049" "G0050" "G0051" "G0052" "G0053" "G0054"
[55] "G0055" "G0056" "G0057" "G0058" "G0059" "G0060" "G0061" "G0062" NA     
[64] NA      NA      NA      NA      NA      NA      NA      NA      NA     
[73] NA      NA      NA      NA      NA      NA      NA      NA      NA     
[82] NA      NA      NA      NA      NA      NA      NA      NA      NA     
[91] NA      NA      NA      NA      NA      NA      NA      NA      NA 

为什么此循环最多只能运行62次,然后停止?

如果有任何关于如何以更有效的方式执行此操作的建议,我也将很欢迎!

0 个答案:

没有答案