R:自动在文本前后添加引号

问题描述

我正在使用 R 编程语言。我有一个名为“a”的数据框,其中有一列名为“V1”。 “a”中的每个条目都是以下格式的 URL 链接

 1 https:blah-blah-blah.com/item/123/index.do
 2 https:blah-blah-blah.com/item/124/index.do
 3 https:blah-blah-blah.com/item/125/index.do

我正在尝试在每个项目的前后添加双引号(即“”),因此它们看起来像这样:

 1 "https:blah-blah-blah.com/item/123/index.do"
 2" https:blah-blah-blah.com/item/124/index.do"
 3 "https:blah-blah-blah.com/item/125/index.do"

使用之前的 stackoverflow 帖子 (How to add quotes around each word in a string in R? ),我尝试了以下代码

new_file = cat(gsub("\\b",'"',a$V1,perl=T))

new_file = cat(gsub("(\\w+)",'"\\1"',a$V1))

但是这些并没有产生预期的结果。有人可以告诉我我做错了什么吗?

谢谢

解决方法

修正你的方法:

a <-  data.frame(V1 = c("https:blah-blah-blah.com/item/123/index.do","https:blah-blah-blah.com/item/124/index.do","https:blah-blah-blah.com/item/125/index.do"))

a$V1 <- gsub("^","\"",a$V1)
a$V1 <- gsub("$",a$V1)
a
#>                                             V1
#> 1 "https:blah-blah-blah.com/item/123/index.do"
#> 2 "https:blah-blah-blah.com/item/124/index.do"
#> 3 "https:blah-blah-blah.com/item/125/index.do"

^ 字符表示字符串的开始; $ 表示结束。

@MrFlicks 解决方案也有效

a <-  data.frame(V1 = c("https:blah-blah-blah.com/item/123/index.do","https:blah-blah-blah.com/item/125/index.do"))
a$V1 <- dQuote(a$V1,q=FALSE)
a
#>                                             V1
#> 1 "https:blah-blah-blah.com/item/123/index.do"
#> 2 "https:blah-blah-blah.com/item/124/index.do"
#> 3 "https:blah-blah-blah.com/item/125/index.do"

reprex package (v2.0.0) 于 2021 年 4 月 11 日创建

,

以我的拙见,paste0 应该完成这项工作。

  • 实际上 "' 做同样的工作,但同时使用时表现不同。看下面两种情况——

case-1

a <-  data.frame(V1 = c('https:blah-blah-blah.com/item/123/index.do','https:blah-blah-blah.com/item/124/index.do','https:blah-blah-blah.com/item/125/index.do'))

a
                                          V1
1 https:blah-blah-blah.com/item/123/index.do
2 https:blah-blah-blah.com/item/124/index.do
3 https:blah-blah-blah.com/item/125/index.do

a$V1 <- paste0('"',a$V1,'"')
a

                                            V1
1 "https:blah-blah-blah.com/item/123/index.do"
2 "https:blah-blah-blah.com/item/124/index.do"
3 "https:blah-blah-blah.com/item/125/index.do"

case-2

a <-  data.frame(V1 = c("https:blah-blah-blah.com/item/123/index.do","https:blah-blah-blah.com/item/125/index.do"))
 
a
                                          V1
1 https:blah-blah-blah.com/item/123/index.do
2 https:blah-blah-blah.com/item/124/index.do
3 https:blah-blah-blah.com/item/125/index.do

a$V1 <- paste0("'","'")
a
                                            V1
1 'https:blah-blah-blah.com/item/123/index.do'
2 'https:blah-blah-blah.com/item/124/index.do'
3 'https:blah-blah-blah.com/item/125/index.do'

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...