R语言for循环内嵌if语句赋值问题求助
循环范围错误导致新列赋值全为FALSE的解决方法
- 问题背景:作为仅接触编程一周的新手,在处理一个包含两个DataFrame的list时,尝试根据
col1的值为新列col3赋值,但运行代码后col3全部显示为FALSE,未按预期生成对应结果。 - 问题根源:for循环的遍历范围设置错误
- 错误写法:
for (i in 1:length(bp))
这个写法取的是listbp的元素个数(即2),循环仅会执行2次,无法遍历目标DataFrame的每一行,导致赋值逻辑无法作用于全部数据,最终col3全为FALSE。 - 正确写法:
for (i in 1:length(bp$tp_df$p))
这里取的是目标DataFrametp_df中p列(对应你要判断的col1)的元素长度(也就是DataFrame的行数),循环会遍历每一行,让赋值逻辑正确覆盖所有数据,生成符合预期的col3值。
- 错误写法:
内容的提问来源于stack exchange,提问作者Lazzie
相关产品推荐
相关产品推荐

