我有一列是字符。觀察到 ph 被添加到字串的末尾。我想用“NA”替換字串中包含 ph 的列中的任何字串。這是我嘗試過的,并給出了以下錯誤。
柱子
wind_speed_m_s <- c("1.7", "0.7", "0", "0.6", "0.4", "1.2", "1.9", "1.3", "2.0, gust to 3.7",
"0.5", "1.8", "1.4", "3.4", "2.8", "1.6", "2", NA, "0.9", "0.8",
"1", "1.1", "2.6", "2.4", "1.1ph", "1.7 kt", "2.1", "1.5", "0ph",
"3", ".4 /s", "0.3", "2.3", "0.2", "3.3", "3.9ph", "1.5ph", "1ph",
"2ph", "1.7ph", "0.8 ph", "1.5 ph", "2.2", "1.9 k/hr", "2.5",
"NA", "0.4/s", "1/s")
date <- data_raw %>%
mutate(wind_speed_m_s = str_replace(wind_speed_m_s, pattern = str_detect("ph"), "NA"))
Error in `mutate()`:
! Problem while computing `wind_speed_m_s = str_replace(wind_speed_m_s, pattern = str_detect("ph"), "NA")`.
Caused by error in `type()`:
! argument "pattern" is missing, with no default
Backtrace:
1. ... %>% ...
9. stringr::str_detect("ph")
10. stringr:::type(pattern)
uj5u.com熱心網友回復:
您可以使用sub:
sub(".*ph$", NA, wind_speed_m_s)
[1] "1.7" "0.7" "0"
[4] "0.6" "0.4" "1.2"
[7] "1.9" "1.3" "2.0, gust to 3.7"
[10] "0.5" "1.8" "1.4"
[13] "3.4" "2.8" "1.6"
[16] "2" NA "0.9"
[19] "0.8" "1" "1.1"
[22] "2.6" "2.4" NA
[25] "1.7 kt" "2.1" "1.5"
[28] NA "3" ".4 /s"
[31] "0.3" "2.3" "0.2"
[34] "3.3" NA NA
[37] NA NA NA
[40] NA NA "2.2"
[43] "1.9 k/hr" "2.5" "NA"
[46] "0.4/s" "1/s"
還可以這樣做:
is.na(wind_speed_m_s) <- grepl("ph$", wind_speed_m_s)
請注意,如果字串中間$還有另一個,則需要指示字串的結尾。ph如果您需要任何東西,ph無論它是在末尾還是中間,只需洗掉$
uj5u.com熱心網友回復:
我們可以用它grep來識別模式在哪里,并將其用作替換的索引。
> wind_speed_m_s[grep("ph", wind_speed_m_s)] <- NA
> wind_speed_m_s
[1] "1.7" "0.7" "0" "0.6" "0.4" "1.2"
[7] "1.9" "1.3" "2.0, gust to 3.7" "0.5" "1.8" "1.4"
[13] "3.4" "2.8" "1.6" "2" NA "0.9"
[19] "0.8" "1" "1.1" "2.6" "2.4" NA
[25] "1.7 kt" "2.1" "1.5" NA "3" ".4 /s"
[31] "0.3" "2.3" "0.2" "3.3" NA NA
[37] NA NA NA NA NA "2.2"
[43] "1.9 k/hr" "2.5" "NA" "0.4/s" "1/s"
uj5u.com熱心網友回復:
我們可以str_detect在case_when. 在 OP 的代碼中,它只有一個引數,即模式,沒有資料
library(dplyr)
library(stringr)
data_raw %>%
mutate(wind_speed_m_s = case_when(str_detect(wind_speed_m_s, "ph",
negate = TRUE)~ wind_speed_m_s))
-輸出
wind_speed_m_s
1 1.7
2 0.7
3 0
4 0.6
5 0.4
6 1.2
7 1.9
8 1.3
9 2.0, gust to 3.7
10 0.5
11 1.8
12 1.4
13 3.4
14 2.8
15 1.6
16 2
17 <NA>
18 0.9
19 0.8
20 1
21 1.1
22 2.6
23 2.4
24 <NA>
25 1.7 kt
26 2.1
27 1.5
28 <NA>
29 3
30 .4 /s
31 0.3
32 2.3
33 0.2
34 3.3
35 <NA>
36 <NA>
37 <NA>
38 <NA>
39 <NA>
40 <NA>
41 <NA>
42 2.2
43 1.9 k/hr
44 2.5
45 NA
46 0.4/s
47 1/s
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/522754.html
標籤:r细绳
上一篇:R-基于分組列條件的新行列
