簡體   English   中英

R:通過索引刪除數據框中的行

[英]R: deleting rows in a dataframe by indexing

我剛開始學習R,確實需要一些幫助來清理數據。 我花了最后兩天的時間來尋找解決方案,但似乎沒有任何效果。

我有一個名為d.new的數據集。 這是相關行的示例:

d.new <- cbind(c("abc","abc","abc","def","def","def"),c("yes",NA,NA,"no",NA,NA)) 
colnames(d.new) <- c("observation", "vis") 

我像這樣提取vis == "yes"的代碼:

idx_vis <- c(select(filter(d.new, vis == "yes"), c(observation)))

輸出看起來像這樣:

$observation
[1] "abc" 

現在,我想查找所有行,其中“ observation”列的內容是向量中的代碼之一(假設它不僅是abc而是幾百個代碼)並刪除了它們,但實際上沒有進行硬編碼一切 我也想將腳本用於具有不同代碼的其他數據集。

因此,我想要的輸出將是一個不包含具有某些代碼的行的數據框。

我的嘗試是編寫一個循環,在其中循環瀏覽所有行,然后查找並刪除那些行,在該循環中我找到了idx_vis中的代碼idx_vis 我是這樣開始的(但是我什至不確定這是否有意義,我之前從未寫過循環):

for(i in 1:length(d.new$observation)){  
  i2 <- c([i]:length(idx_vis)) 
  idx_dump <- as.character(which(d.new$observation == "idx_vis[i2]"))
  # then delete the rows from idx_dump from d.new?
} 

如果有人可以給我提示,那就太好了! 提前致謝!

梅爾

試試這個: d.new[d.new$vis == "yes", ]根據“ vis”列中的值選擇線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM