我有下面提到的数据框:
ID Final Val1 Val2 Val3 Val4 Val5
P-1 A A 0 0 0
P-2 A 0 A B
P-2 B 0 A B
P-3 A A B B B
P-3 B A B B B
P-3 B A B B B
我只是想针对每个唯一ID检查,其值与Final
的值相同。
要求输出:
ID Final Val1 Val2 Val3 Val4 Val5 Status
P-1 A A 0 0 0 True
P-2 A 0 A B True
P-2 B 0 A B True
P-3 A A B B B False
P-3 B A B B B False
P-3 B A B B B False
答案 0 :(得分:1)
我们可以count = count + 1
if count == 200:
break
进入'long'格式,然后通过比较和连接来进行组以获得预期的输出
gather
library(tidyverse)
gather(df1, key, val, -ID, -Final, na.rm = TRUE) %>%
group_by(ID) %>%
summarise(Status = !(all(unique(Final) %in% val) &
all(unique(val) %in% Final))) %>%
right_join(df1)
# A tibble: 6 x 8
# ID Status Final Val1 Val2 Val3 Val4 Val5
# <chr> <lgl> <chr> <chr> <chr> <lgl> <chr> <chr>
#1 P-1 TRUE A A 0 NA 0 0
#2 P-2 TRUE A 0 A NA B ""
#3 P-2 TRUE B 0 A NA B ""
#4 P-3 FALSE A A B NA B B
#5 P-3 FALSE B A B NA B B
#6 P-3 FALSE B A B NA B B