我最近收到了数百个包含许多列的CSV文件。我遇到其中一列p.value
的问题。该列的值类似1.88737914186277e-14 .
,其中实际数字后跟正好6个空格,然后是一个点。我想在dplyr管道中替换所有这些。我该怎么办?
例如,我尝试过
df %>% dplyr::mutate(p.value=str_replace(p.value, "[ .]", ""))
,但显然无法正常工作。任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
尝试使用以下模式:"\\s+\\.$"
。它检测到一个或多个空格(\\s+
)以及字符串末尾的一个点(\\.$
)
df %>%
dplyr::mutate(p.value = str_replace(p.value, pattern = "\\s+\\.$", ""))
答案 1 :(得分:0)
由于p值作为数字更有用,因此我建议使用readr::parse_number
,它可以自动识别并转换字符串数字:
library(tidyverse)
df %>% mutate(p.value = parse_number(p.value))