C_Lyao 2022-07-24 16:48 采纳率: 50%
浏览 51
已结题

R中 判断数据框中某行的所有字符是否均为某两个值

在处理一个大型队列的问卷信息,需要判断每个参与对象的用药情况,但是每个人同时存在缺失的情况。我已经将所有NA替换为-8这个值,问卷系统默认无效录入为9999。如果该参与者对应的一行记录中出现了 1140874686记为他用过该药,这一行全部为-8或者全部为9999和-8的组合,记为缺失(我设置为-8),其余情况均记为0。

这一行记录有49列,所以直接只用 if else语句会非常长,我想使用for循环来判断每行的情况,新增一列来记录。

for (i in 1:nrow(data_medicine)){
if(1140874686%in%data_NI_medicine[i,]) data_medicine.0[i,50]<-1 else
if( ) else data_NI_medicine.0[i,50]<-0
}

不知道如何写代码判断 这一行字符是否都是由 -8和9999 这两个数值的任意组合构成,来问问各位!感谢!

data_medicine.0[i,50] 是我要新增那一列。

  • 写回答

1条回答 默认 最新

  • Nh_code 2022-07-25 11:44
    关注

    如果我没有理解错的话,你是指要替换单元格值为 -8和9999 的单元格为0,值为1140874686的单元格替换为1:

    for (i in 1:nrow(DT)) {
        for (j in 1:ncol(DT)) {
            DT[i,j] <- ifelse(DT[i,j] %in% c(-8,9999) ,yes = 0 ,no = DT[i,j])
            DT[i,j] <- ifelse(DT[i,j] == 1140874686 ,yes = 1 ,no = DT[i,j])
        }
    }
    

    这样写判断语句会简单些

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月25日
  • 创建了问题 7月24日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装