从R中的子字符串中删除“NA”

时间:2017-11-29 17:01:13

标签: r substring

下面显示了我拥有的数据帧的示例。请注意,我的数据框中有许多其他列,我的数据类型是给定列的“字符”。

Time 
NA, 2017-07-24 04:13:00
2017-07-24 07:01:12
NA, 2017-07-24 05:18:00
2017-07-24 05:00:45, NA
NA, 2017-07-24 19:44:30, NA

我希望删除所有“NA”,逗号和空格(“NA”和时间之间的空格)。因此,我需要的结果如下。

Time 
2017-07-24 04:13:00
2017-07-24 07:01:12
2017-07-24 05:18:00
2017-07-24 05:00:45
2017-07-24 19:44:30

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

这应该这样做:

your_data$better_time = gsub(
  pattern = "NA, |, NA",
  replacement = "",
  x = your_data$Time)

pattern = "NA, |, NA"是一个与NA,, NA匹配的正则表达式。

答案 1 :(得分:0)

来自str_extract的{​​{1}}的另一个选项。这提取了所需的内容,而不是删除不需要的内容:

stringr

备注:

  • library(stringr) df = df %>% mutate(Time = str_extract(Time, "\\d.+\\d")) 匹配数字

  • \\d匹配任何字符一次或多次。这种匹配是贪婪的,这意味着它将搜索与模式匹配的最长字符串

  • .+匹配一个数字后跟任何字符一次或多次和一个数字。

<强>结果:

\\d.+\\d

数据:

                 Time
1 2017-07-24 04:13:00
2 2017-07-24 07:01:12
3 2017-07-24 05:18:00
4 2017-07-24 05:00:45
5 2017-07-24 19:44:30