r - Get percentage in a dataframe with ddply function -
मेरे पास यह डेटाफ्रेम mydf
संरचना (सूची ( चालक = सी ("क्रॉप कृषि", "क्रॉप कृषि", "इन्फ्रास्ट्रक्चर", "इन्फ्रास्ट्रक्चर", "खनन", "खनन", "मिश्रित कृषि", "मिश्रित कृषि", "अन्य भूमि उपयोग", "अन्य भूमि उपयोग "," चराई "," चराई "," वृक्ष फसलों "," वृक्ष फसलों "," जल "," पानी "), अवधि = सी (" 1990-2000 "," 1990-2005 "," 1990-2000 " , "1990-2005", "1990-2000", "1990-2005", "1990-2000", "1990-2005", "1990-2000", "1990-2005", "1990-2000", " 1990-2005 "," 1990-2000 "," 1990-2005 "," 1990-2000 "," 1990-2005 "), कुल = सी (120328.157829121, 301821.021 9 0182, 12829.2774726025, 10727.4383383233, 1087.58971425679, 639.851573022215, 27213.5917382956, 19832.3424927037, 72326.7471322223, 64524.3243532213, 1064383.44273723, 1347648.2335736, 7814.32273630087, 7672.0730281537, 20332.6943805768, 17504.7712037337), एन = सी ("एन = 1669", "एन = 783", "एन = 298", "एन = 151", "एन = 20" , "एन = 7", "एन = 1355", "एन = 925", "एन = 1623", "एन = 851", "एन = 10986", "n = 6039", "n = 316", "n = 211", "n = 466", "n = 244")), । नाम = सी ("ड्राइवर", "अवधि", "कुल", "एन"), वर्ग = "डेटा.फ्रेम", पंक्ति.नाम = सी (एनए, -16 एल)) यह विचार अवधि के लिए प्रत्येक ड्राइवर का प्रतिशत प्राप्त करना है। मैंने डीडीप्ले फ़ंक्शन की कोशिश की है और यह लाइन कोड प्राप्त किया है।
प्रतिशत & lt; - ddply (mydf, c ("ड्राइवर", "अवधि"), संक्षेप, प्रतिशत = ((कुल / योग कुल)) * 100)) हाव्वर, मुझे केवल सभी कक्षों के लिए 100% मान मिलते हैं। क्या किसी को पता है कि मैं क्या कर रहा हूं?
अपने कॉल में, जब आप sum ( कुल आप समूह के कुल मूल्य का उपयोग कर रहे हैं, जो कि जब यह डेटा / समूह के लिए कुल / योग (कुल) के साथ प्रयोग किया जाता है, आप df $ total में sum () कॉल का उपयोग करके पूरे डेटा सेट से कुल योग की गणना कर सकते हैं। ddply
ddply (df,। (ड्राइवर, अवधि), सारांश, पीसीटीटी = कुल / योग (डीएफ $ कुल) * 100) और यहां dplyr समकक्ष
लाइब्रेरी (dplyr) समूह_ द्वारा (डीएफ, चालक, अवधि)% & gt;% संक्षेप (पीसीटी) = कुल / योग (डीएफ $ कुल) * 100)
Comments
Post a Comment