下的比較,我有一個小問題, 我有這些參數: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