2017-08-03 55 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