如何替换 'numeric' 和 '.'同时
How to replace 'numeric' and '.' at the same time
在 R 数据框中,我想替换所有数字和“.”至 'other'。
这是下面的代码,有两种方法(我想要两种方法来解决它)。
任何人都可以帮忙吗?谢谢!
library(tidyverse)
test_data <- data.frame(category = c('.', '2.1', '2.33', 'A', 'B'))
#method 1
test_data %>% mutate(category = str_replace_all(category, "![A-B]", "other"))
#method 2
test_data %>% mutate(category = str_replace_all(category, "(.)|(\d.*)", "other"))
您需要在第二个示例中正确转义 .
和 \d
。
test_data %>%
mutate(category = str_replace_all(category, "(\.)|(\d.*)", "other"))
#> category
#> 1 other
#> 2 other
#> 3 other
#> 4 A
#> 5 B
类似于@caldwellst 提出的解决方案,可以说更具可读性:
gsub('^(\d|\.)+$', 'other', test_data$category)
# [1] "other" "other" "other" "A" "B"
在 R 数据框中,我想替换所有数字和“.”至 'other'。 这是下面的代码,有两种方法(我想要两种方法来解决它)。 任何人都可以帮忙吗?谢谢!
library(tidyverse)
test_data <- data.frame(category = c('.', '2.1', '2.33', 'A', 'B'))
#method 1
test_data %>% mutate(category = str_replace_all(category, "![A-B]", "other"))
#method 2
test_data %>% mutate(category = str_replace_all(category, "(.)|(\d.*)", "other"))
您需要在第二个示例中正确转义 .
和 \d
。
test_data %>%
mutate(category = str_replace_all(category, "(\.)|(\d.*)", "other"))
#> category
#> 1 other
#> 2 other
#> 3 other
#> 4 A
#> 5 B
类似于@caldwellst 提出的解决方案,可以说更具可读性:
gsub('^(\d|\.)+$', 'other', test_data$category)
# [1] "other" "other" "other" "A" "B"