首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在R中的c()列表中快速添加引号和逗号?

如何在R中的c()列表中快速添加引号和逗号?
EN

Stack Overflow用户
提问于 2019-03-05 03:01:06
回答 4查看 4.6K关注 0票数 7

这是一个方便的问题,比什么都重要。我经常手动添加引号和逗号,以便为其他函数生成一个c()列表。有没有一种既快速又聪明的方法来添加它们,而不涉及复杂的查找/替换或多次操作?如果我有多个项目,用空格或制表符分隔,或者每行一个项目,我想执行以下操作:

a、b、c、d

一个

B

C

D

至:

代码语言:javascript
复制
temp <- c("A", "B", "C", "D")

我可以手动添加它们,对空格",“执行查找/替换,然后添加第一个/最后一个,但这很烦人。有没有更快的方法?

EN

回答 4

Stack Overflow用户

发布于 2019-03-05 04:13:05

scan函数是所有read.*函数的基础,但它也用于执行您想要执行的任务。几年前,我们添加了一个text参数,这样您就不再需要用“裸字符串”包装textConnection了。可以与任何分隔符一起使用,默认的空格分隔符将处理yopu请求处理的内容:

代码语言:javascript
复制
 TEMP <- scan(text="A B C D", what="")

#-------------------
Read 4 items
> TEMP
[1] "A" "B" "C" "D"
> dput(TEMP)
c("A", "B", "C", "D")

如果需要对可能是数字的内容保留前导零,则在使用formatCsprintf打印它们时,需要将它们作为文本导入或在前导零之前添加

票数 9
EN

Stack Overflow用户

发布于 2019-03-05 03:30:30

下面是基本R字符串函数和stringr函数的选项。在这两种情况下,想法都是在每个空白处拆分文本,然后用单引号(')替换单词边界。这样做的原因是为了区别于字符串的开头和结尾的双引号("),即字符串中有引号。您应该能够通过转义双引号(\\")来做同样的事情,但是我发现当我尝试这样做时,我很少正确地匹配它们,所以我没有测试它。然后通过逗号(也可以是逗号后跟空格)将字符串向量折叠在一起。

使用基本函数:

代码语言:javascript
复制
library(dplyr)
library(stringr)
txt <- "A B C D"

split_txt <- strsplit(txt, split = "\\s")[[1]]

quoted <- gsub("\\b", "'", split_txt)

paste(quoted, collapse = ",")
#> [1] "'A','B','C','D'"

或者是tidyverse的:

代码语言:javascript
复制
txt %>%
  str_split("\\s") %>%
  `[[`(1) %>%
  str_replace_all("\\b", "'") %>%
  str_flatten(collapse = ",")
#> [1] "'A','B','C','D'"
票数 6
EN

Stack Overflow用户

发布于 2019-03-05 05:40:52

尽管这有点棘手,但您可以在RStudio中创建和使用多个游标。

可以通过多种方式创建多个游标:

按Ctrl + Alt +{向上/向下}在按下的方向上创建新光标。

按Ctrl + Alt + Shift + { direction }向指定方向移动第二个光标。

使用Alt并使用鼠标拖动来创建矩形选择,

使用Alt + Shift并单击可创建从当前光标位置到单击位置的矩形选择。

取自here和gif,描述它的样子:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54989864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档