在 R 中用 5 替换 +
Replacing + by 5 in R
我有一个名为 Price 的数据集,它应该是数字但生成为字符串,因为所有 5 都被 + 替换了。
看起来像这样:
"99000" "98300" "98300" "98290" "98310" " 9831+ " "98310" " 9830+ " " 9830+ " " 9830+ " " 9829+ " " 9828+ " " 9827+ " "98270"
我在 R 中使用 gsub
函数尝试将 + 替换为 5。我编写的代码是:
finalPrice<-gsub("+",5,Price)
但是,输出只是一堆数字,对我的意图没有意义:
"59595050505,5 59585350505,5 59585350505,5 59585259505,5 59585351505,5 5 5 595853515+5 5,5 59585351505,5 5 5 595853505+5 5,5 5 5 595853505+5
我该如何解决这个问题?
应该转义 + 号。试试这个:
finalPrice<-gsub("\+",5, Price)
写正则表达式时,+
表示匹配前一组一次或多次。由于前面的字符在 +
为空之前位于您的正则表达式中,因此 gsub 匹配目标中的每个空字符串。
结果是5
被插入到每个位置。
为避免这种情况,转义 +
,这需要在 R:
中使用双反斜杠来完成
finalPrice<-gsub("\+",5,Price)
除了使用双转义强制文字-x
与模式参数匹配外,您还可以使用fixed=TRUE
参数或使用字符-class由“[.]”操作定义。有关详细信息,请参阅 ?regex
页面:
> gsub("+", "5", txt, fixed=TRUE)
[1] "99000" "98300" "98300" "98290" "98310"
[6] " 98315 " "98310" " 98305 " " 98305 " " 98305 "
[11] " 98295 " " 98285 " " 98275 " "98270"
> gsub("[+]", "5", txt)
[1] "99000" "98300" "98300" "98290" "98310"
[6] " 98315 " "98310" " 98305 " " 98305 " " 98305 "
[11] " 98295 " " 98285 " " 98275 " "98270"
我有一个名为 Price 的数据集,它应该是数字但生成为字符串,因为所有 5 都被 + 替换了。
看起来像这样:
"99000" "98300" "98300" "98290" "98310" " 9831+ " "98310" " 9830+ " " 9830+ " " 9830+ " " 9829+ " " 9828+ " " 9827+ " "98270"
我在 R 中使用 gsub
函数尝试将 + 替换为 5。我编写的代码是:
finalPrice<-gsub("+",5,Price)
但是,输出只是一堆数字,对我的意图没有意义:
"59595050505,5 59585350505,5 59585350505,5 59585259505,5 59585351505,5 5 5 595853515+5 5,5 59585351505,5 5 5 595853505+5 5,5 5 5 595853505+5
我该如何解决这个问题?
应该转义 + 号。试试这个:
finalPrice<-gsub("\+",5, Price)
写正则表达式时,+
表示匹配前一组一次或多次。由于前面的字符在 +
为空之前位于您的正则表达式中,因此 gsub 匹配目标中的每个空字符串。
结果是5
被插入到每个位置。
为避免这种情况,转义 +
,这需要在 R:
finalPrice<-gsub("\+",5,Price)
除了使用双转义强制文字-x
与模式参数匹配外,您还可以使用fixed=TRUE
参数或使用字符-class由“[.]”操作定义。有关详细信息,请参阅 ?regex
页面:
> gsub("+", "5", txt, fixed=TRUE)
[1] "99000" "98300" "98300" "98290" "98310"
[6] " 98315 " "98310" " 98305 " " 98305 " " 98305 "
[11] " 98295 " " 98285 " " 98275 " "98270"
> gsub("[+]", "5", txt)
[1] "99000" "98300" "98300" "98290" "98310"
[6] " 98315 " "98310" " 98305 " " 98305 " " 98305 "
[11] " 98295 " " 98285 " " 98275 " "98270"