如何快速将引号和逗号添加到 R 中 c() 的项目列表中?

use*_*887 7 r

这比任何事情都更方便。我经常手动添加引号和逗号来为其他函数创建 ac() 列表。是否有一种快速而聪明的方法来添加它们而不涉及棘手的查找/替换或多次操作?如果我有多个由空格或制表符分隔的项目,或者每行一个项目,我想执行以下操作:

A B C D

或者

一种

C

D

到:

temp <- c("A", "B", "C", "D")
Run Code Online (Sandbox Code Playgroud)

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

42-*_*42- 9

scan函数是所有函数的基础read.*,但它也用于执行您希望执行的任务。几年前text添加了一个参数,因此您不再需要textConnection环绕“裸字符串”。可以与任何分隔符一起使用,默认的空白分隔符将处理 yopu 要求处理的内容:

 TEMP <- scan(text="A B C D", what="")

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

如果您需要在可能是数字的内容上保留前导零,那么您将需要将它们作为文本导入或在打印时添加前导零formatCsprintf


cam*_*lle 5

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

具有基本功能:

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'"
Run Code Online (Sandbox Code Playgroud)

或者 tidyverse 的:

txt %>%
  str_split("\\s") %>%
  `[[`(1) %>%
  str_replace_all("\\b", "'") %>%
  str_flatten(collapse = ",")
#> [1] "'A','B','C','D'"
Run Code Online (Sandbox Code Playgroud)


DJV*_*DJV 5

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

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

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

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

使用 Alt 并用鼠标拖动创建一个矩形选区,

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

取自这里和它的外观 gif: 在此输入图像描述