तो... जब RStudio की बात आती है तो मैं बहुत अनपढ़ हूं और मैं इस प्रोग्राम का उपयोग कक्षा के लिए कर रहा हूं... मैं यह पता लगाने की कोशिश कर रहा हूं कि किसी श्रेणी के सबसेट को कैसे जोड़ा जाए। अगर इसका कोई मतलब नहीं है तो मैं पहले से माफी मांगता हूं, लेकिन मैं समझाने की पूरी कोशिश करूंगा क्योंकि मुझे नहीं पता कि मैं क्या कर रहा हूं और क्यों के स्पष्टीकरण की भी सराहना करता हूं, न कि केवल क्या उत्तर होगा। नोट: मैंने जिन दो पंक्तियों को शामिल किया है, वे उन निर्देशों का हिस्सा हैं जिनका मुझे पालन करना है, न कि कुछ ऐसा जो मैंने अभी टाइप किया क्योंकि मुझे पता था कि कैसे करना है - मैं नहीं... यह अंतिम भाग है, योग , कि मुझे समझाया नहीं गया है कि कैसे करना है और इस प्रकार मुझे नहीं पता कि क्या करना है और यह पता लगाने में मदद की सराहना करेंगे।

उदाहरण के लिए,

मेरे पर यह है:

category_name    category2_name
1                ABC
2                ABC
3                ABC
4                ABC
5                ABC
6                BDE
5                EFG
7                EFG

मैं इन संख्याओं का योग ज्ञात करना चाहता था, इसलिए मुझे इसमें डालने के लिए कहा गया:

sum(dataname$category_name)

ऐसा करने के बाद, मुझे इसे टाइप करने के लिए कहा गया है, जाहिर तौर पर एक सबसेट बना रहा है।

allabc <- subset(dataname, dataname$category_name2 == "abc")

मैंने यह सबसेट बनाया है और अब मेरे पास इस सबसेट के साथ एक नई तालिका है। मुझे केवल इस ABC उपसमुच्चय की संख्याओं का योग करने के लिए कहा गया है... मुझे इस बारे में कोई जानकारी नहीं है कि यह कैसे करना है। अगर कोई मेरी मदद कर सकता है, तो मैं वास्तव में इसकी सराहना करता हूं!

r
1
jacketblox 21 फरवरी 2020, 07:08
आप sqldf एकाधिक योग, माध्य, न्यूनतम, अधिकतम के लिए प्रयास कर सकते हैं। library(sqldf) allcategoryname2 <- sqldf('select allcategoryname, min(category_name) as MIN_category_name, max(category_name) as MAX_category_name, avg(category_name) as AVG_category_name, sum(category_name) as Sum_category_name from dataname group by allcategoryname')
 – 
Tushar Lad
21 फरवरी 2020, 07:14
2
category_name सांख्यिक है या गैर-संख्यात्मक? यदि गैर-संख्यात्मक, योग () लेने का कोई मतलब नहीं है। यदि संख्यात्मक, एक वर्ण स्ट्रिंग का उपयोग करके उस पर सब्मिट करना भी कोई मतलब नहीं है। कृपया एक न्यूनतम प्रतिलिपि प्रस्तुत करने योग्य उदाहरण show दिखाएं
 – 
Edward
21 फरवरी 2020, 07:16
हां, श्रेणी_नाम संख्याओं की विभिन्न पंक्तियों का एक स्तंभ है, और लक्ष्य सभी पंक्तियों की संख्याओं का योग करना था। जैसा कि मैंने कहा, मैं काफी अनपढ़ हूं - एक चरित्र स्ट्रिंग क्या है?
 – 
jacketblox
21 फरवरी 2020, 07:19
"categoryname2" एक वर्ण स्ट्रिंग है (उद्धरण से घिरा कुछ भी, सिंगल या डबल हो सकता है)। ' या "
 – 
Edward
21 फरवरी 2020, 07:24
1
हम्म मुझे लगता है कि मैं इसे ठीक से समझा नहीं सकता। मैं इसे संपादित कर दूंगा और इसे और अधिक समझने योग्य बना दूंगा।
 – 
jacketblox
21 फरवरी 2020, 07:27

2 जवाब

आर वह सॉफ्टवेयर है जिसका आप उपयोग कर रहे हैं। यह केस-संवेदी है। तो "एबीसी" "एबीसी" के बराबर नहीं है।

तर्क वे "चीजें" हैं जिन्हें आप कार्यों के अंदर रखते हैं। कुछ तर्कों का नाम फ़ंक्शन के समान होता है (जो पहली बार में थोड़ा भ्रमित करने वाला होता है, लेकिन आप अंततः इसके अभ्यस्त हो जाते हैं)। इसलिए जब मैं subset तर्क कहता हूं, तो मैं subset फ़ंक्शन के आपके दूसरे तर्क के बारे में बात कर रहा हूं, जिसे आपने नाम नहीं दिया। यह ठीक है, लेकिन R सीखना शुरू करते समय, हमेशा अपने तर्कों को नाम देने का प्रयास करें।

इसलिए,

allabc <- subset(dataname, dataname$category_name2 == "abc")

में बदलने की जरूरत है:

allabc <- subset(dataname, subset=category2_name == "ABC")

और आपको सबसेट तर्क में डेटा का नाम फिर से निर्दिष्ट करने की आवश्यकता नहीं है, क्योंकि आपने पहले तर्क में ऐसा किया है (जिसे आपने नाम नहीं दिया, लेकिन लगभग हर कोई ऐसा करने के लिए परेशान नहीं होता)।

1
Edward 21 फरवरी 2020, 08:11
ठीक है, यह समझ में आता है। शुक्रिया! अब, मैं ABC उपसमुच्चय के अंतर्गत संख्याओं का योग कैसे ज्ञात करूं?
 – 
jacketblox
21 फरवरी 2020, 08:17
sum(allabc$category_name). इस चर का नाम भ्रामक लगता है।
 – 
Edward
21 फरवरी 2020, 08:19

यह tidyverse का उपयोग करके सबसे आसानी से किया जाने वाला कार्य है।

# Your data
data <- data.frame(category_name = 1:8, category_name2 = c(rep("ABC", 5), "BDE", "EFG", "EFG"))

# Installing tidyverse
install.packages("tidyverse")

# Loading tidyverse
library(tidyverse)

# For each category_name2 the category_name is summed
data %>%
  group_by(category_name2) %>%
  summarise(sum_by_group = sum(category_name))

# Output
category_name2 sum_by_group
ABC            15
BDE            6
EFG            15
1
Esben Eickhardt 21 फरवरी 2020, 11:25