我想过滤包含长度超过35且短于10的rownames的行。
我在查看nchar
函数。
79_CGTACG.collapsed.gz 80_ACAGTG.collapsed.gz
CACCCGCACGTATAGACGGACA 0 0
GTGCTGATGTCCTTGGCAGGCTTCGGCCGTCCGGC 0 0
CGTGGAACCTG 0 0
TAATGGTCATTAG 2 1
GGCGATGCGGGATGAACCGAAC 0 0
AAGGATGT 0 0
答案 0 :(得分:7)
我认为您使用nchar()
的想法很好。这可以应用于rownames()
并与逻辑上的数据框结合使用:
df1[nchar(rownames(df1)) > 35 | nchar(rownames(df1)) < 10,]
# X79_CGTACG.collapsed.gz X80_ACAGTG.collapsed.gz
#AAGGATGT 0 0
数据强>
df1 <- structure(list(X79_CGTACG.collapsed.gz = c(0L, 0L, 0L, 2L, 0L,
0L), X80_ACAGTG.collapsed.gz = c(0L, 0L, 0L, 1L, 0L, 0L)),
.Names = c("X79_CGTACG.collapsed.gz", "X80_ACAGTG.collapsed.gz"),
class = "data.frame", row.names = c("CACCCGCACGTATAGACGGACA",
"GTGCTGATGTCCTTGGCAGGCTTCGGCCGTCCGGC", "CGTGGAACCTG", "TAATGGTCATTAG",
"GGCGATGCGGGATGAACCGAAC", "AAGGATGT"))