gpt4 book ai didi

r - 循环遍历列并返回值

转载 作者:行者123 更新时间:2023-12-04 10:28:08 24 4
gpt4 key购买 nike

我想遍历数据框中的一列并检查条件,然后替换 0 或 1。代码是:

for (i in v$R){
if( is.na(v$R) ==TRUE ){v$V5 = 0}else{v$V5=1}
}

但我得到一个错误。名为“v”的数据框如下。 V5 有 NA 值,如果 R 列中的值为 NA,我想用 0 替换,否则用 1 替换。我该怎么做?
A B R V5
1 2 3 NA
4 5 NA NA

最佳答案

  • 你可以试试ifelse如下图
  • df <- within(df,V5 <- ifelse(is.na(R),0,1))

    + (将逻辑值转换为数字值)
    df <- within(df,V5 <- +!is.na(R))

    以至于
    > df
    A B R V5
    1 1 2 3 1
    2 4 5 NA 0
  • 如果你想使用循环,你可以试试
  • for (i in seq_along(df$R)){
    if( is.na(df$R[i]) ==TRUE ){df$V5[i] = 0}else{df$V5[i]=1}
    }

    数据
    df <- structure(list(A = c(1L, 4L), B = c(2L, 5L), R = c(3L, NA), V5 = c(NA, 
    NA)), class = "data.frame", row.names = c(NA, -2L))

    关于r - 循环遍历列并返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60546505/

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