r - 在 for 循环内增长列表会返回 NA

标签 r loops

我想使用 for 循环取回一些索引,但现在,循环仅返回 NA。

df <- data.frame(v1 = c("a", "b", "c", "d", "e"),
                 v2 = c("f", "g", "h", "i", "j"),
                 v3 = c("aa", "bb", "cc", "bb", "dd"))

vec <- c("aa", "bb", "ee")

res <- list()


for (i in(vec)){
 temp <- vec[i]
 res[[i]] <- grep(temp, df[,3])
}

给出

res

$aa
[1] NA NA NA NA NA

$bb
[1] NA NA NA NA NA

$ee
[1] NA NA NA NA NA

当我为此奋斗时

res

$aa
[1] 1

$bb
[1] 2 4

$ee
[1]

我一直没有意识到的这个非常简单的事情是什么?

最佳答案

我们可以使用lapply循环遍历pattern向量,调用grep将参数'x'指定为'v3'列

lapply(vec, grep, x = df$v3)

或者使用匿名函数调用

lapply(vec, function(pat) grep(pat, df$v3))

列表 res可以在OP的帖子中初始化为

res <- vector('list', length(vec))

然后循环“vec”的序列

for (i in seq_along(vec)){
   temp <- vec[i]
   res[[i]] <- grep(temp, df[,3])
  }

关于r - 在 for 循环内增长列表会返回 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63287981/

相关文章:

ios - 循环中单个像素的渲染速度

r - ggplot2:使用gtable将标签条移动到facet_grid的面板顶部

r - 通过控制组将整个数据帧划分为几个子组中的每一个

r - 修改 lm 或 loess 函数以在 ggplot2 的 geom_smooth 中使用它

java - 计数元素出现在链表Java中的次数

python - 通过数据帧的子集更有效地使用 Python for 循环

r - 动物园包的零膨胀滚动贝塔回归?

r - 使用dplyr分组并过滤数据管理

java - 如何循环浏览我创建的砖 block 图形?

javascript - D3-多放射状进度图