在R中使用ifelse处理误分类数据

在R中使用ifelse处理误分类数据,r,R,我不确定该如何构建这个框架,但我会举例说明。基本上,我有一个调查,我问参与者他们喝什么减肥饮料。但一些参与者错误地将水作为减肥饮料,从而使结果大打折扣。数据的结构方式参与者首先回答“减肥饮料的类型”(减肥饮料),然后回答“每天多少?”(减肥饮料),然后回答“每周多少天?”(减肥饮料) 我想做的是重新编码diet_Differences_amt和diet_Differences_days列中的数据,以读取NA,其中一名参与者为diet_Differences问题添加了“水”,而没有删除其他回答正确

我不确定该如何构建这个框架,但我会举例说明。基本上,我有一个调查,我问参与者他们喝什么减肥饮料。但一些参与者错误地将水作为减肥饮料,从而使结果大打折扣。数据的结构方式参与者首先回答“减肥饮料的类型”(减肥饮料),然后回答“每天多少?”(减肥饮料),然后回答“每周多少天?”(减肥饮料)

我想做的是重新编码diet_Differences_amt和diet_Differences_days列中的数据,以读取NA,其中一名参与者为diet_Differences问题添加了“水”,而没有删除其他回答正确的参与者的数据。我知道ifelse,但我不知道如何在不删除正确数据的情况下重新编码错误

dataset <- data.frame(
  diet_drinks = c("Diet Coke", "Diet Sprite", "Water"),
  diet_drinks_amt = c(2,7,3),
  diet_drinks_days = c(3,6,7)
  )
dataset
ind
ind您可以尝试以下方法:

#Data
dataset <- data.frame(
  diet_drinks = c("Diet Coke", "Diet Sprite", "Water"),
  diet_drinks_amt = c(2,7,3),
  diet_drinks_days = c(3,6,7)
)
#Index to track water
index <- which(dataset$diet_drinks=='Water')
#Replace
dataset[index,-1]<-NA

  diet_drinks diet_drinks_amt diet_drinks_days
1   Diet Coke               2                3
2 Diet Sprite               7                6
3       Water              NA               NA
#数据
dataset您可以尝试以下方法:

#Data
dataset <- data.frame(
  diet_drinks = c("Diet Coke", "Diet Sprite", "Water"),
  diet_drinks_amt = c(2,7,3),
  diet_drinks_days = c(3,6,7)
)
#Index to track water
index <- which(dataset$diet_drinks=='Water')
#Replace
dataset[index,-1]<-NA

  diet_drinks diet_drinks_amt diet_drinks_days
1   Diet Coke               2                3
2 Diet Sprite               7                6
3       Water              NA               NA
#数据
数据集