我有一个数据框,在第一列中有一个变量(类型:字符),有些行以“#”开头。但是变量中还有其他单词(比方说:“#AA”。我想删除第一列变量以#开头的行。我没有找到办法做到这一点。有什么建议吗?
数据的一个例子是:
mydata = as.data.frame(matrix(sample(c("AA", "AB", "BA", "BB", "--"), 7200, replace = T),
+ nrow = 600, ncol = 12))
mydata$V1 = as.character(mydata$V1)
mydata$V1 = ifelse(mydata$V1 == "AA", "# AA",mydata$V1)
head(mydata)
感谢。
答案 0 :(得分:3)
尝试在第一列中的每个元素的开头搜索字符,然后使用该索引进行子集化:
head(mydata[-grep("^#", mydata$V1),])
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12
# 2 -- BB AB -- -- BB AB AB AA BB AA BB
# 3 AB BB AB AB -- -- BA AA AA BB BB AA
# 4 -- AA AB BB BA BB AB BA BA AB -- BB
# 5 AB BA AB BA BB AB BA BB BB AA BB BA
# 6 BA AA -- AB BB -- BA BB AB AB BB --
# 7 AB BA BA AA BB BB BA BB AA BB BB BA