【发布时间】:2021-07-06 12:18:05
【问题描述】:
我正在使用 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))
但这些并没有产生预期的结果。有人可以告诉我我做错了什么吗?
谢谢
【问题讨论】:
-
您的数据似乎已经在向量中,请使用
dQuote(a$V1, q=FALSE)。例如:cat(dQuote(letters[1:3], q=FALSE))(注意我使用了cat(),因此 R 在打印到控制台时不会转义引号)。无需理会gsub()。但是,您究竟为什么要尝试将这些用引号括起来呢?它只是一个格式化的东西吗? -
class(a$V1)是否返回“字符”?如果是这样,则引用字符串,但并不总是打印引号。在打印时添加引号,例如print(a, quote=TRUE)或print(a$V1, quote=TRUE)。当您将值写入文件时,它们也会被引用:write.csv(a)。 -
我不知道你为什么想要这个,但你可以试试
a <- a %>% mutate(V1 = paste0('"', V1, '"'))这样的东西。你需要 l 先加载dplyr包。
标签: r url data-manipulation quotes double-quotes