下的比较,我有一个小问题, 我有这些参数:2个条件
df <- data.frame(Equip = c(1,1,1,1,1,2,2,2,2,2),
Notif = c(1,1,1,2,2,3,3,3,3,4),
Component = c("Dichtung","Motor","Getriebe","Service","Motor","Lüftung","Dichtring","Motor","Getriebe","Dichtring"),
rank= c(1 , 1 , 1 , 2 , 2 , 1 , 1 , 1 , 1 , 2))
现在我想有一个比较,只是为了一个Equip
看,如果在第一rank
的使用Components
,是一样的,在第二rank
(只是由同一Equip
):
在2种方式:
第一:是所有的组件一样的吗?
任何(最少1个)组件是否相同?
我需要一个高度自动的解决方案,因为我的数据集有超过150k行。
想要的答案可能是一个只有布尔表达式的向量,包括TRUE和FALSE。
因此,对于上面的例子,
answer <- c(TRUE,TRUE)
由于装备1个秩1成分:电机 “AND” 装备1个秩2是组件:电机为好。 (对于1种期望的方式为例)
非常感谢您的帮助=)
我使用的评论功能,但我不能显示的问题,因为我想显示的代码。
请遗憾的是..
原始数据有更多然后2点,现在我想排名X秩X +在一个步骤1相结合,这是一个使用此我使用的福尔循环在功能,但它不工作任何想法?
a <- lapply(split(df,df$Equips),function(x){
for(i in 1:8){
ll <- split(x,x$rank)
if(length(ll)>i)
ii <- intersect(ll[[i]]$Comps,ll[[i+1]]$Comps)
else ii <- NA c(length(ii)> 0 && !is.na(ii),ii)
}
})
b <- unlist(a)
c <- table(b,b)
rowSums(c)
任何想法,我能为它(做的主要思想是有1-2,2-3,3-4等结果一步到位
什么是你想要的结果吗?您能否使用您发布的数据向我们展示一个示例? – digEmAll
对于相同的装备(例如= 1),如果一个等级中的其中一个成分在另一个等级中重复,那么您希望结果=真?那么,每个Equip值只有一个布尔值? – digEmAll
是的,这是我想要的第一步。第二个是如果所有组件都是相同的。但你明白我的意思,是的。 – Daniel