首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for-循环中使用粘贴和和。

在for-循环中使用粘贴和和。
EN

Stack Overflow用户
提问于 2022-02-07 11:22:17
回答 2查看 130关注 0票数 0

我需要将一个字符串与多个其他字符串进行比较,并试图通过以下方式进行比较:

代码语言:javascript
复制
empty = character(0)
ps_2 = c("h2","h3")
ps_3 = c("h3", "h4")
visible = ("h2")

i = 2
ps_t = empty
ps_t <- append(ps_t, sum(visible %in% paste("ps_", i, sep="")))

打算写一个循环,而不是i= 2,以便循环ps_2,ps_3,

但是,我认为它不起作用,因为粘贴()命令返回一个字符串,而不是名称为: ps_2的字符串。

感谢您的时间和努力!

致以亲切的问候,

一位达芬奇伙伴!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-07 12:04:44

您需要的函数是get(),它获取对象的值。

代码语言:javascript
复制
ps_t <- ps_t = NULL

sapply(2:3, function(i) append(ps_t, sum(visible %in% get(paste0("ps_", i)))))

或者简单地说:

代码语言:javascript
复制
sapply(2:3, function(i) sum(visible %in% get(paste0("ps_", i))))

输出

代码语言:javascript
复制
[1] 1 0
票数 2
EN

Stack Overflow用户

发布于 2022-02-07 11:31:03

您可以在R中使用eval将字符串转换为变量名。您可以找到解决方案这里

下面是您的代码的样子:

代码语言:javascript
复制
ps_t <- c(0, (sum(visible %in% eval(parse(text = paste("ps_", i, sep=""))))))

它会给你一个数字向量。

你可以使用get

代码语言:javascript
复制
ps_t <- append(0, sum(visible %in% get(paste("ps_", i, sep = ""))))
ps_t
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71017745

复制
相关文章

相似问题

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