创建for循环内嵌if语句的函数,实现数据集指定列条件赋值
实现方案
以下为完全符合要求的for循环+内部if判断的实现代码:
modify_b_col <- function(ds) { # 遍历数据集的每一行 for (row_idx in seq_len(nrow(ds))) { # 判断当前行a列取值是否为1 if (ds$a[row_idx] == 1) { # 符合条件则将对应行b列设为0 ds$b[row_idx] <- 0 } } # 返回修改后的数据集 return(ds) }
使用示例
# 构造测试用数据集 test_ds <- data.frame( a = c(1, 2, 3, 1, 5, 1), b = c(12, 34, 56, 78, 90, 23) ) # 调用自定义函数处理数据 result_ds <- modify_b_col(test_ds)
运行后result_ds中所有a列取值为1的行,对应的b列值都会被修改为0,其余行数据保持不变。
内容的提问来源于stack exchange,提问作者bristol3328
相关产品推荐
相关产品推荐

