我想先按字符串长度然后按字母对数据框中的一列进行排序,我尝试了以下代码:
#sort column by string length then alphabet
GSN[order(nchar(GSN[,3]),GSN[,3]),]
但是我有错误
Error in nchar(GSN[, 3]) : 'nchar()' requires a character vector
我的数据如下:
Flowcell Lane barcode sample plate row column
314 NA NA AACAGACATT LD06_7620SDS GSN1_Hind384D B 4
307 NA NA AACAGCACT LG10_2688SDS GSN1_Hind384D C 3
289 NA NA AACCTC U09_105007SDS GSN1_Hind384D A 1
232 NA NA AACGACCACC 13_232 GSN1_Hind384C H 5
10 NA NA AACGCACATT 13_10 GSN1_Hind384A B 2
165 NA NA AACGG 13_165 GSN1_Hind384B E 9
我想对“条形码”列进行排序。谢谢你的时间。
您可以在数据框中添加另一列,其中包含条形码中的字符数,然后按常规方式进行排序。
GSN <- transform(GSN, n=nchar(as.character(barcode)))
GSN[with(GSN, order(n, barcode)), ]
您似乎遇到的问题是因为R认为这barcode
是一个因素而不是字符向量,因此nchar()
是无效的。通过将其转换为字符可以as.character()
解决此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句