Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式将所有内容替换为空白,模式除外(dplyr、stringr)_R_Regex_Dplyr_Stringr - Fatal编程技术网

正则表达式将所有内容替换为空白,模式除外(dplyr、stringr)

正则表达式将所有内容替换为空白,模式除外(dplyr、stringr),r,regex,dplyr,stringr,R,Regex,Dplyr,Stringr,我有一个如下所示的数据框(示例数据): 正则表达式模式背后的想法是用空格替换所有内容(在新列中),除了前三位数字(这个数字是HP) 然而,我尝试过的每个正则表达式模式都只返回空白 我期望的结果是: 我更喜欢使用base R/dplyr/stringr函数,所以请务必告诉我是否有更有效的方法来执行此操作 但最重要的是,我想知道为什么我的正则表达式不起作用,以及什么模式会起作用。您可以提取“hp”字符串前面的数字 在base R中,您可以使用sub: myCars$hp <- as.nume

我有一个如下所示的数据框(示例数据):

正则表达式模式背后的想法是用空格替换所有内容(在新列中),除了前三位数字(这个数字是HP)

然而,我尝试过的每个正则表达式模式都只返回空白

我期望的结果是:

我更喜欢使用
base R
/
dplyr
/
stringr
函数,所以请务必告诉我是否有更有效的方法来执行此操作


但最重要的是,我想知道为什么我的正则表达式不起作用,以及什么模式会起作用。

您可以提取
“hp”
字符串前面的数字

在base R中,您可以使用
sub

myCars$hp <- as.numeric(sub('.*?(\\d+)\\shp.*', '\\1',myCars$Engine_Information))
myCars_HP <- myCars %>%
  mutate(HP = Engine_Information) %>%
  mutate(HP = str_replace(HP, "^(?![0-9]{3}).*$", ""))
myCars$hp <- as.numeric(sub('.*?(\\d+)\\shp.*', '\\1',myCars$Engine_Information))
library(dplyr)
library(stringr)

myCars %>%
    mutate(HP = as.numeric(str_extract(Engine_Information, '\\d+(?=\\shp)')))

#                                         Engine_Information  HP
#1              Ford 3.5L 6 Cylinder 355 hp 350 ft-lbs Turbo 355
#2                Ford 5.4L 8 cylinder 310 hp 365 ft-lbs FFV 310
#3          Audi 3.0L 6 Cylinder 333 hp 325 ft-lbs S-charged 333
#4                  Toyota 2.7L 4 Cylinder 159 hp 180 ft-lbs 159
#5               Chevrolet 4.3L 6 Cylinder 195 hp 260 ft-lbs 195
#6           Chevrolet 3.0L 6 Cylinder 264 hp 222 ft-lbs FFV 264
#7                     GMC 3.7L 5 Cylinder 242 hp 242 ft-lbs 242
#8                  Volvo 3.2 L 6 cylinder 240 hp 236 ft-lbs 240
#9                 Hyundai 2.4L 4 Cylinder 198 hp 184 ft-lbs 198
#10 Mercedes-AMG 5.4L 8 Cylinder 500 hp 516 ft-lbs S-Charged 500