str_replace定义数量的空格后跟一个点

时间:2019-07-01 16:52:33

标签: r dplyr

我最近收到了数百个包含许多列的CSV文件。我遇到其中一列p.value的问题。该列的值类似1.88737914186277e-14 .,其中实际数字后跟正好6个空格,然后是一个点。我想在dplyr管道中替换所有这些。我该怎么办?

例如,我尝试过 df %>% dplyr::mutate(p.value=str_replace(p.value, "[ .]", "")),但显然无法正常工作。任何帮助将不胜感激。谢谢。

2 个答案:

答案 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))