[英]Remove factor from dataframe when it provides a certain value
我有以下數據
head(df_raw)
Scan Zeit Sensor Response
1 1 04.09.2019 06:28:22:405 101 9936.3
2 2 04.09.2019 06:28:32:389 101 9958.0
3 3 04.09.2019 06:28:42:389 101 9958.0
4 4 04.09.2019 06:28:52:389 101 9979.7
5 5 04.09.2019 06:29:02:389 101 9979.7
6 6 04.09.2019 06:29:12:389 101 9936.3
7 3 04.09.2019 06:28:42:389 102 9958.0
8 4 04.09.2019 06:28:52:389 102 9.9e+37
9 5 04.09.2019 06:29:02:389 102 9.9e+37
10 6 04.09.2019 06:29:12:389 102 9936.3
11 4 04.09.2019 06:28:52:389 103 7563.5
12 5 04.09.2019 06:29:02:389 103 9871.1
13 6 04.09.2019 06:29:12:389 103 10354.8
有時,傳感器壞了,然后它會提供 ~inf。 像9.9e+37
或9.900e+37
這樣的數字。 當傳感器提供如此高的值時,即使只有一次,我也想從數據框中刪除該傳感器。
為了移除整個傳感器,那么你可以做
df[!df$Sensor %in% (df$Sensor[df$Response == 9.90000e+37]),]
這將刪除所有102
傳感器,如下所示,
Scan Zeit Sensor Response 1 1 04.09.201906:28:22:405 101 9936.3 2 2 04.09.201906:28:32:389 101 9958.0 3 3 04.09.201906:28:42:389 101 9958.0 4 4 04.09.201906:28:52:389 101 9979.7 5 5 04.09.201906:29:02:389 101 9979.7 6 6 04.09.201906:29:12:389 101 9936.3 11 4 04.09.201906:28:52:389 103 7563.5 12 5 04.09.201906:29:02:389 103 9871.1 13 6 04.09.201906:29:12:389 103 10354.8
可能有更聰明的方法,但一個簡單的方法是:
將值轉換為 NA
df_raw[df_raw == 9.9e+37]<- NA
使用 NA 刪除列
not_any_na <- function(x) all(!is.na(x))
df_raw<- df_raw %>%
select_if(not_any_na)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.