如何针对R中的多个变量检查​​列

时间:2019-01-30 18:41:08

标签: r

我正在尝试找到一种方法来再次测试每个唯一标识符多个变量以找到输出。例如:

ID  Status       Ready
45   Ready       True
52   Ready       True
45   Not Ready   False
105  Not Ready   False
65   Ready       True

我希望它检查每个ID,例如,是否检查ID:45,并且在状态列中的任何位置显示“未准备好”将所有ID为45的行都设置为False

我是R的新手,找不到任何可以使我靠近的东西。

很抱歉,如果有人问过我,但我找不到它,也不确定如何措辞。

谢谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您的意思是这样的吗?


foo.df <- data.frame(ID = c(45,52,45,105,65),
                     Status = c('Ready', 'Ready', 'Not Ready',
                                'Not Ready', 'Ready'),
                     Ready = c(TRUE, TRUE, FALSE, FALSE, TRUE))

foo.df$IDReady <- sapply(foo.df$ID, function(id){
  sum(foo.df[foo.df$ID == id, 'Status'] == 'Not Ready') == 0
})

答案 1 :(得分:0)

尝试一下:

library(dplyr)
df %>% 
  mutate(NewID=ifelse(ID==45 & Status=="Not Ready",F,T))



#     ID    Status Ready NewID
   # 1  45     Ready  TRUE  TRUE
   # 2  52     Ready  TRUE  TRUE
   # 3  45 Not Ready FALSE FALSE
   # 4 105 Not Ready FALSE  TRUE
   # 5  65     Ready  TRUE  TRUE