मान लीजिए मैं कुछ गिनती डेटा है कि इस तरह दिखता है:उचित मुहावरा/dplyr
X.tidy <- X.raw %>% group_by(x,y) %>% summarise(count=sum(z))
X.tidy
# Source: local data frame [3 x 3]
# Groups: x
#
# x y count
# 1 A i 1
# 2 A ii 5
# 3 B i 15
:
library(tidyr)
library(dplyr)
X.raw <- data.frame(
x = as.factor(c("A", "A", "A", "B", "B", "B")),
y = as.factor(c("i", "ii", "ii", "i", "i", "i")),
z = 1:6)
X.raw
# x y z
# 1 A i 1
# 2 A ii 2
# 3 A ii 3
# 4 B i 4
# 5 B i 5
# 6 B i 6
मैं साफ और इस तरह संक्षेप में प्रस्तुत करना चाहते हैं मुझे पता है कि x=="B"
और y=="ii"
के लिए हमने गुम मूल्य के बजाय शून्य की गिनती देखी है। यानी फील्ड वर्कर वास्तव में वहां था, लेकिन क्योंकि कोई सकारात्मक गिनती नहीं थी कच्चे डेटा में कोई पंक्ति दर्ज नहीं की गई थी। मैं इसे शून्य करके स्पष्ट रूप से शून्य गणना जोड़ सकता हूं:
X.fill <- X.tidy %>% spread(y, count, fill=0) %>% gather(y, count, -x)
X.fill
# Source: local data frame [4 x 3]
#
# x y count
# 1 A i 1
# 2 B i 15
# 3 A ii 5
# 4 B ii 0
लेकिन यह चीजों को करने का एक चौराहे तरीका लगता है। क्या उनके लिए यह एक क्लीनर मुहावरे है?
बस स्पष्ट करने के लिए: मेरी कोड पहले से ही मैं यह क्या करने की जरूरत है, spread
तो gather
का उपयोग कर, तो क्या मैं में दिलचस्पी रखता हूँtidyr
और dplyr
के भीतर एक अधिक सीधा रास्ता जा रहे हैं।
क्या आप जानते हैं "बी" के लिए/"ii" वहाँ शून्य का एक मनाया गिनती है कि, क्यों कि नहीं है अपने स्रोत में:
परिणाम प्रत्येक विकल्प के लिए एक ही है डाटासेट? आपका स्रोत डेटासेट वर्तमान में उस संयोजन को याद करता है जो गायब है। – A5C1D2H2I1M1N2O1R2T1
कच्चे डेटासेट में केवल सकारात्मक गणना शामिल है। लेकिन हम जानते हैं कि सभी संयोजनों का सर्वेक्षण किया गया था। – pete
क्या आपके पास एक और टेबल है जो दिखाती है कि "x" और "y" के संयोजन क्या मान्य हैं? अन्यथा, आप '0' और' NA' के बीच अंतर करने की योजना कैसे बनाते हैं? – A5C1D2H2I1M1N2O1R2T1