आर में कारक चर द्वारा स्वचालित रूप से सारांश का उत्पादन


11

मुझे निम्नलिखित की तरह एक डेटाफ्रेम मिला है:

   case simulation temp plank oxygen
1     1          1    8     7     11
2     2          1   16    10     15
...
17   17          2   26    12     17
18   18          2   15     8     12
19   19          2   28    11     21
20   20          2   24     6     14

मैं सिमुलेशन चर के स्तरों द्वारा सारांश को विभाजित करना चाहता हूं। उदाहरण के लिए, मैं tempसिमुलेशन == 1 और सिमुलेशन == 2 के लिए, और मानक विचलन के लिए समान का मतलब चाहूंगा ।

फिलहाल मैं निम्नलिखित कोड का उपयोग कर रहा हूं, जो बहुत भयानक है:

df <- read.csv("data.csv")
attach(df)

# Create subset variables
temp1 = subset(temp, simulation==1)
temp2 = subset(temp, simulation==2)

plank1 = subset(plank, simulation==1)
plank2 = subset(plank, simulation==2)

oxygen1 = subset(oxygen, simulation==1)
oxygen2 = subset(oxygen, simulation==2)

print(sd(temp1))
print(sd(temp2))
print(sd(plank1))
print(sd(plank2))

मुझे यकीन है कि R में ऐसा करने के लिए एक स्वचालित तरीका होना चाहिए, लेकिन मैं इसे नहीं ढूंढ सकता। मैंने प्रयोग करने की कोशिश की है summary(df ~ simulation), लेकिन यह उपयोगी कुछ भी पैदा नहीं करता है।

जवाबों:


17

by()या tapply()कार्यों की जाँच करें । मूल रूप से,

tapply(y, g, mean)

के yस्तर से आपको मतलब देगा g। यदि आप परिणामी कुल उपायों से एक डेटा.फ्रेम प्राप्त करना चाहते हैं, तो उपयोग करें aggregate()

Hmisc पैकेज summary.formula()में फ़ंक्शन के माध्यम से एक अधिक विस्तृत समाधान उपलब्ध है ।


3

पैकेज doByमें एक summaryByफ़ंक्शन होता है जिसमें आपके द्वारा आज़माए गए फॉर्मूला आधारित सिंटैक्स होता है।

इसके अलावा, मुझे लगता है कि स्टैकएक्सचेंज पर बेहतर सवाल पूछा गया होगा।


धन्यवाद। मैं पैकेज देखूंगा। यह स्टैकेक्सचेंज है ना?
रॉबिनटव

1
मुझे लगता है कि fabians मतलब Stackoverflow: stackoverflow.com जो आर प्रोग्रामिंग के लिए है, मैं कैसे आर सवालों में कुछ करना है। यह जगह आमतौर पर आंकड़ों के बारे में अधिक है। दोनों एक बहुत मिश्रण कर सकते हैं, हालांकि।
गेविन सिम्पसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.