[英]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.