如何在R中为c()快速添加引号和逗号?

cotxawn7  于 2022-12-25  发布在  其他
关注(0)|答案(5)|浏览(268)

这比什么都方便。我经常手工添加引号和逗号来为其他函数创建c()列表。有没有一种快速而聪明的方法来添加它们,而不涉及棘手的查找/替换或多个操作?如果我有多个项目由空格或制表符分隔,或者每行一个项目,我想做以下操作:
阿拉伯联合酋长国

A类
B
C级
D级
致:

temp <- c("A", "B", "C", "D")

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

bybem2ql

bybem2ql1#

scan函数是所有read.*函数的基础,但它也用于执行您希望执行的任务。几年前,text参数被添加,因此您不再需要将textConnection Package 在“裸字符串”周围。可以与任何分隔符一起使用,默认的空白分隔符将处理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")

如果需要在可能是数字的内容上保留前导零,则需要将其作为文本导入,或者在使用formatCsprintf打印时预先添加前导零

r7xajy2e

r7xajy2e2#

下面是基本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'"

或者是整洁宇宙:

txt %>%
  str_split("\\s") %>%
  `[[`(1) %>%
  str_replace_all("\\b", "'") %>%
  str_flatten(collapse = ",")
#> [1] "'A','B','C','D'"
6vl6ewon

6vl6ewon3#

尽管这有点棘手,但您可以在RStudio中创建和使用 * 多个游标 *。
可以通过多种方式创建多个游标:
按下Ctrl + Alt + {向上/向下}键,在按下的方向创建一个新光标。
按Ctrl + Alt + Shift + {方向}可沿指定方向移动第二个光标,
使用Alt键并拖动鼠标以创建矩形选区,
使用Alt + Shift并单击,以创建从当前光标位置到单击位置的矩形选择。
取自here和gif,其外观如下:

gopyfrb3

gopyfrb34#

你可以试试typeStringsGadget RStudio Addin,它能完全满足你的需求,参见下面的用例。

rm5edbpk

rm5edbpk5#

查看datapasta插件。

install.packages("datapasta")

然后进入工具-〉加载项,搜索datapasta。你会看到粘贴的所有选项。你可以将数据框粘贴为数据,粘贴为矢量,等等。

相关问题