2017-08-03 62 views
-6

Sample Dataset从数据帧

我想删除之间“5.需求争议”,并从各自的列“总需求有争议”的所有行删除特定行与模式[起点和终点指标。我已经尝试过

grepl 
gsub 

但是无法达到愿望输出。亲引导。

+1

你可以请'dput(数据$ V1)' – loki

+0

你是什么意思通过删除?请尝试澄清你的问题,并拿出一个[可重现的例子](https://stackoverflow.com/q/5963269/3250126) – loki

回答

2

使用的玩具如...

df <- data.frame(a=LETTERS[1:10],b=LETTERS[3:12],stringsAsFactors = FALSE) 
limits <- c("E","H") 

sapply(df,function(x){ 
    del.min <- grep(limits[1],x) 
    del.max <- grep(limits[2],x) 
    x[del.min:del.max] <- "" 
    return(x)}) 

     a b 
[1,] "A" "C" 
[2,] "B" "D" 
[3,] "C" "" 
[4,] "D" "" 
[5,] "" "" 
[6,] "" "" 
[7,] "" "I" 
[8,] "" "J" 
[9,] "I" "K" 
[10,] "J" "L" 
+1

谢谢!我想知道如何设置索引或将指标移除。得到了我的答案。 – PritamJ

+0

似乎'grep'没有必要。 '哪个'应该可以正常工作 – Sotos

+0

@Sotos - 我使用了'grep',因为在图片中'Total Disputed'后面似乎有一些额外的文本,所以我认为这是一个比'which'更强大的解决方案。 –

2

使用grep在两行之间创建索引向量。

x[-c(grep("5. Demand Disputed", x$V1) : grep("Total Demand Disputed", x$V1), ] 

说明

grep“返回产生一个匹配x的元素的索引的矢量”(?grep

所以,可以简单地创建两条线之间的整数矢量匹配:的两个字符串。

+0

'x $ V1错误:$运算符对原子向量无效' – PritamJ

+0

我不禁你有这个错误,因为你没有添加数据。请分享一些数据,所以我们有一个可重复使用的例子。 – loki

+0

感谢您的意见,我得到了解决方案。你创建索引向量是正确的。 – PritamJ