我有一個 R 資料框,其結構如下:
indx <- as.factor(c('A01','A02','A03','B01','B02','B03'))
data <- runif(6,0,10)
valid <- rep(TRUE, 6)
df <- data.frame(indx, data, valid)
indx data valid
1 A01 6.534581 TRUE
2 A02 4.996695 TRUE
3 A03 3.328804 TRUE
4 B01 2.342048 TRUE
5 B02 9.928362 TRUE
6 B03 5.484037 TRUE
indx當無效時,我也有一個值串列。
invalid_list <- as.factor(c('A02','B03'))
我怎樣才能改變的價值valid是FALSE,如果indx在存在invalid_list?
結果應如下所示:
indx data valid
1 A01 6.534581 TRUE
2 A02 4.996695 FALSE
3 A03 3.328804 TRUE
4 B01 2.342048 TRUE
5 B02 9.928362 TRUE
6 B03 5.484037 FALSE
uj5u.com熱心網友回復:
我們可以使用%in%匹配的并將其分配給FALSE“有效”
df$valid[df$indx %in%invalid_list] <- FALSE
uj5u.com熱心網友回復:
基于的解決方案dplyr:
library(dplyr)
df %>%
mutate(valid = ifelse(indx %in% invalid_list, FALSE, valid))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/340869.html
下一篇:如何在R中執行k均值聚類
