大佬教程收集整理的这篇文章主要介绍了R for 循环在 1000 次迭代后生成 NA,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的 for 循环,我用它来从数据框中删除任何涉及共享相似字符串的两个变量的行,当我运行循环时,它会迭代 1000 次,然后开始生成 NA,这会破坏我的循环。
2021-02-26 | 2021-02-26 10:00:00 |
2021-02-26 | 2021-02-27 10:00:00 |
for(row in 1:nrow(df)){
if(grepl(df$expiration[row],df$quote_datetiR_918_11845@e[row],fixed=TRUE) == TRUE){
df = df[-row,]
}
}
我收到错误消息
如果 (grepl(df$expiration[row],: 需要 TRUE/falSE 的缺失值
每次我运行它时,它都会消除更多的行,直到它用完任何其他要消除的行,然后它就会无误地运行。感谢帮助。
出现问题是因为原始数据 'df' 获得子集 if
条件为 TRUE,即对于每个 if
TRUE 情况,它会少一行。如果我们复制数据可以解决
df2 <- df
for(row in 1:nrow(df)){
if(grepl(df$expiration[row],df$quote_datetiR_918_11845@e[row],fixed=TRUE)){
df2 <- df2[-row,]
}
}
此外,grepl
仅针对 'x' 进行矢量化,而不针对 pattern
因此,如果我们需要进行矢量化,可能需要 paste
{{1} }一起
pattern
或者使用对 'x' 和 'pattern 进行矢量化的函数,即 df <- df[!grepl(paste(df$expiration,collapse="|"),df$quote_datetiR_918_11845@e,fixed = TRUE),]
str_detect
以上是大佬教程为你收集整理的R for 循环在 1000 次迭代后生成 NA全部内容,希望文章能够帮你解决R for 循环在 1000 次迭代后生成 NA所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。