r - 无法从 while 循环中生成结果
问题描述
我试图找到两个向量 v 和 g 的交集,这是我写的代码:
v <- c(1,2,3,4)
g <- c(3,4,5,99,0)
j = 1
new <- c()
for (i in 1:4){
while (j < 5){
if (v[i] == g[j])
new <- c(new, v[i])
j = j + 1
}
}
如您所见,我已经创建了一个名为“new”的空向量,因为在 R 语言中,for 循环不存储运行该代码的结果。但我仍然没有得到“新”的结果。我想知道为什么?
解决方案
正如Waldi所说,问题出在 j 重新初始化上。
尝试:
v <- c(1,2,3,4)
g <- c(3,4,5,99,0)
new <- c()
for (i in 1:4){
j = 1
while (j < 5){
print(paste('v=',v[i]))
print(paste('g=',g[j]))
print(v[i] == g[j])
if (v[i] == g[j])
new <- c(new, v[i])
j = j + 1
}
}
推荐阅读
- wordpress - 使用 WPGraphQL 插件将数据拉入 Gatsby 站点
- python - 我有一个具有 2263 投影的 json 文件,我想使用 pyproj 将其更改为 4326?
- symfony - 如何从 api 平台返回自定义数据?
- powershell - 如何修复:启动存储在变量中的服务
- java - 执行 Java AnnotationProcessor 时出现 ClassNotFound 异常
- python - 如何获取用户输入来创建类的另一个实例?(即从用户规范中添加员工?)
- django - 带有从和到日期的Django范围数据
- php - php - header() 在必须从超过 2 个嵌套文件夹重定向到页面时不起作用
- c# - WebAPI 未在 Asp.net mvc 中返回带有状态码的错误消息
- html - 如何减少有序列表项之间的空格?