gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 19:19:06 25 4
gpt4 key购买 nike

我想使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com