我正在尝试找到一种方法来再次测试每个唯一标识符多个变量以找到输出。例如:
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的新手,找不到任何可以使我靠近的东西。
很抱歉,如果有人问过我,但我找不到它,也不确定如何措辞。
谢谢您的帮助。
答案 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