This question already has answers here:
Remove all rows where length of string is more than n
(4 个回答)
3年前关闭。
我想过滤包含长于 35 且短于 10 的行名的行。
我在看
数据
(4 个回答)
3年前关闭。
我想过滤包含长于 35 且短于 10 的行名的行。
我在看
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
最佳答案
我认为您使用 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"))
关于r - 根据字符串长度过滤行名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35902056/
10-11 07:49