首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将代码(而不是数据)转换为向量

将代码(而不是数据)转换为向量
EN

Stack Overflow用户
提问于 2022-04-21 04:56:12
回答 1查看 51关注 0票数 1

我有以下代码:

代码语言:javascript
复制
install.packages("microbenchmark")
install.packages("readxl")
install.packages("data.table")

我想要创建一个可变数量的包名向量,而不必实际编写该向量(这些包名是否已安装)。期望产出:

代码语言:javascript
复制
vector <- c("microbenchmark","readxl", "data.table")

我想我应该把包作为字符串提供给vector,然后从那里开始:

代码语言:javascript
复制
input <- 'install.packages("microbenchmark")
install.packages("readxl")
install.packages("data.table")'

vector <- gsub("install.packages\(", " ", input)

但它甚至不能正确地创建向量。我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2022-04-28 12:01:04

为了完整起见,下面是一种使用str_match_all()stringr包提取所有以双引号"括起来的字符的方法

代码语言:javascript
复制
library(magrittr) # piping used for readability
vector <- stringr::str_match_all(input, '"(.*)"') %>% 
    extract2(1) %>% 
    .[, 2]

vector

1“微基准”"readxl“"data.table”

str_match_all()返回字符矩阵的列表。因此,需要随后的步骤来提取向量。

数据

代码语言:javascript
复制
input <- 'install.packages("microbenchmark")
install.packages("readxl")
install.packages("data.table")'

input

1个"install.packages(\"microbenchmark\")\ninstall.packages(\"readxl\")\ninstall.packages(\"data.table\")“

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

https://stackoverflow.com/questions/71949123

复制
相关文章

相似问题

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