मेरे पास पक्षियों के 40 जोड़े हैं जो प्रत्येक पुरुष और मादा के साथ अपने रंग के लिए स्कोर करते हैं। रंग स्कोर 1 से 9 तक की मान रेंज के साथ एक स्पष्ट चर है। मैं प्रत्येक संयोजन की संख्या (1/1, 1/2, 1/3, ... 9/7, 9 के साथ एक टेबल बनाना चाहता हूं/8, 9/9)। मेरी समस्या यह है कि कुछ संयोजन हैं जो मेरे डेटा में मौजूद नहीं होते हैं जब मैं तालिका बनाने की कोशिश करता हूं (इन मामलों में मुझे लापता मूल्यों के लिए शून्य चाहिए)। नीचे डेटा और नमूना कोड है। मुझे पूरा यकीन है कि उत्तर 'expand.grid()' कमांड का उपयोग करने में निहित है, उदा। यह post देखें, लेकिन मुझे यकीन है कि इसे कैसे कार्यान्वित किया जाए। कोई सुझाव?आर में तालिका में लापता मूल्य कैसे बनाएं?
## Dataset pairs of males and females and their colour classes
Pair_Colours <- structure(list(Male = c(7, 6, 4, 6, 8, 8, 5, 6, 6, 8, 6, 6, 5,
7, 9, 5, 8, 7, 5, 5, 4, 6, 7, 7, 3, 6, 5, 4, 7, 4, 3, 9, 4, 4,
4, 4, 9, 6, 6, 6), Female = c(9, 8, 8, 9, 3, 6, 8, 5, 8, 9, 7,
3, 6, 5, 8, 9, 7, 3, 6, 4, 4, 4, 8, 8, 6, 7, 4, 2, 8, 9, 5, 6,
8, 8, 4, 4, 5, 9, 7, 8)), .Names = c("Male", "Female"), class = "data.frame", row.names = c(NA,
40L))
Pair_Colours$Male <- as.factor(Pair_Colours$Male)
Pair_Colours$Female <- as.factor(Pair_Colours$Female)
## table of pair colour values (colours 1 to 9 - categoricial variable)
table(Pair_Colours$Male, Pair_Colours$Female)
## my attempt to create a table with a count of each possible value for pairs
Colour_Male <- rep(seq(1, 9, by = 1), each = 9)
Colour_Female <- rep(seq(1, 9, by = 1), times = 9)
Colour_Count <- as.vector(table(Pair_Colours$Male, Pair_Colours$Female)) # <- the problem occurs here
Pairs_Colour_Table <- as.data.frame(cbind(cbind(Colour_Male, Colour_Female), Colour_Count))
## plot results to visisually look for possible assortative mating by colour
op<-par(mfrow=c(1,1), oma=c(2,4,0,0), mar=c(4,5,1,2), pty = "s")
plot(1,1, xlim = c(1, 9), ylim = c(1, 9), type="n", xaxt = "n", yaxt = "n", las=1, bty="n", cex.lab = 1.75, cex.axis = 1.5, main = NULL, xlab = "Male Colour", ylab = "Female Colour", pty = "s")
axis(1, at = seq(1, 9, by = 1), labels = T, cex.lab = 1.5, cex.axis = 1.5, tick = TRUE, tck = -0.015, lwd = 1.25, lwd.ticks = 1.25)
axis(2, at = seq(1, 9, by = 1), labels = T, cex.lab = 1.5, cex.axis = 1.5, tick = TRUE, tck = -0.015, lwd = 1.25, lwd.ticks = 1.25, las =2)
points(Pair_Colours$Male, Pair_Colours$Female, pch = 21, cex = Pairs_Colour_Table$Colour_Count, bg = "darkgray", col = "black", lwd = 1)
+1 बहुत अच्छा क्योंकि यह आसान है। मैं 'expand.gird' के बारे में सोच रहा था। मुझे कॉफी की जरुरत हे। –