使用 for 和 if 根据数据框中的其他列添加列值 [英] add column values based on other columns in data frame using for and if

查看:29
本文介绍了使用 for 和 if 根据数据框中的其他列添加列值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这样的数据框:

I have a dataframe like this:

     id        adit     diag1   diag2       
      2       3         4230    2234        
      3       5         3345    4456        
      4       6         4567    4467

我想使用下面的伪代码添加其他 2 列,dse1dse2:

I would like to add other 2 columns, dse1 and dse2 using the pseudo-code below:

if diag1 contains 4230 then dse1 = 1 else dse1 = 0

if diag2 contains 4567 then dse2 =1  else dse2 = 0

我用过这个:

for (i in 1 : nrow(dse)){
  for (j in 3: ncol(dse)){
     if dse[i,j] %in% ("4320"){dse$dse1 = 1}
        else{dse$dse1 = 0}
    if dse[i,j] %in% ("4567"){dse$dse2 = 1}
        else{dse$dse2 = 0} 
  }
}

但这些都不起作用.

推荐答案

无需使用循环,只需使用ifelse,例如

No need to use a loop, just use ifelse, for example

dse = within(dse, {
    dse1 = ifelse(diag1 == 4230, 1, 0)
    dse2 = ifelse(diag2 == 4567, 1, 0)
 })

这篇关于使用 for 和 if 根据数据框中的其他列添加列值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆