私は次のデータを持っています
path value
1 b,b,a,c 3
2 c,b 2
3 a 10
4 b,c,a,b 0
5 e,f 0
6 a,f 1
df
df <- data.frame (path= c("b,b,a,c", "c,b", "a", "b,c,a,b" ,"e,f" ,"a,f"), value = c(3,2,10,0,0,1))
係数がなく、値がゼロでない合計数を計算したいと思います。したがって、私の望ましい出力は次のようになります。
#desiored output
path value
1: b 2
2: a 1
3: c 2
4: e 4
5: f 3
たとえば、a
それは私たちが持っていない合計数を示してa
おり、値はゼロではありませa
ん. (明確であることを願っています。さらに例が必要な場合はお知らせください)
次のコードを試しましたが、出力b
が間違っています。誰かが理由を知っていますか?
total <- sum(df$value != 0)
library (splitstackshape)
#total number of total minus total number that a value is not zero
output <-cSplit(df, "path", ",", 'long')[, .(value=total - sum(value!=0)), .(path)]
output
このコードは、正しくない次の出力になります。b
path value
1: b 1
2: a 1
3: c 2
4: e 4
5: f 3