एक लूप में, स्वचालित प्रिंटिंग बंद है, क्योंकि यह एक फ़ंक्शन के अंदर है। यदि आप आउटपुट देखना चाहते हैं तो आपको दोनों मामलों में कुछ print
स्पष्ट रूप से कुछ करने की आवश्यकता है। [1] 9
जो चीजें आप प्राप्त कर रहे हैं वह इसलिए है क्योंकि आप स्पष्ट रूप से y
के मानों को प्रिंट कर रहे हैं।
यहां एक उदाहरण है कि आप ऐसा करने के बारे में क्या सोचना चाहेंगे।
> DF <- data.frame(A = rnorm(100), B = rlnorm(100))
> y <- 1
> shapiro.test(DF[,y])
Shapiro-Wilk normality test
data: DF[, y]
W = 0.9891, p-value = 0.5895
तो हमारे पास स्वचालित प्रिंटिंग है।
for(y in 1:2) {
print(shapiro.test(DF[,y]))
}
आप और अधिक परीक्षण बाहर मुद्रित करने के लिए चाहते हैं, तो बस उन्हें के रूप में अतिरिक्त लाइनें पाश में जोड़ें:: पाश में हम यह करने के लिए होता है
for(y in 1:2) {
writeLines(paste("Shapiro Wilks Test for column", y))
print(shapiro.test(DF[,y]))
writeLines(paste("Anderson Darling Test for column", y))
print(ad.test(DF[,y]))
}
लेकिन है कि बहुत नहीं है आकर्षक जब तक आप आउटपुट के रीम्स के माध्यम से पढ़ना पसंद नहीं करते हैं। इसके बजाए, फिट टेस्ट ऑब्जेक्ट्स को क्यों न सहेजें और फिर आप उन्हें प्रिंट कर सकते हैं और उनकी जांच कर सकते हैं, शायद उन्हें टेस्ट आंकड़ों और पी-वैल्यू को टेबल में एकत्र करने के लिए भी संसाधित कर सकते हैं?
## object of save fitted objects in
obj <- vector(mode = "list", length = 2)
## loop
for(y in seq_along(obj)) {
obj[[y]] <- shapiro.test(DF[,y])
}
हम तो
> obj[[1]]
Shapiro-Wilk normality test
data: DF[, y]
W = 0.9891, p-value = 0.5895
उदाहरण के लिए
का उपयोग कर, या lapply
का उपयोग कर मॉडल को देखने कर सकते हैं, जो वस्तु की स्थापना का ख्याल रखता है हम स्टोर करने के लिए उपयोग करें: आपको लगता है कि एक पाश का उपयोग कर सकते हमारे लिए परिणाम:
> obj2 <- lapply(DF, shapiro.test)
> obj2[[1]]
Shapiro-Wilk normality test
data: X[[1L]]
W = 0.9891, p-value = 0.5895
कहते हैं अब मैं W
और p-value
डेटा निकालने के लिए, हम वस्तु ext करने के लिए सभी परिणाम भंडारण संसाधित कर सकते हैं चाहता था बिट्स हम चाहते हैं, जैसे ract:
> tab <- t(sapply(obj2, function(x) c(x$statistic, x$p.value)))
> colnames(tab) <- c("W", "p.value")
> tab
W p.value
A 0.9890621 5.894563e-01
B 0.4589731 1.754559e-17
या महत्व सितारों के लिए एक लगन के साथ उन लोगों के लिए:
> tab2 <- lapply(obj2, function(x) c(W = unname(x$statistic),
+ `p.value` = x$p.value))
> tab2 <- data.frame(do.call(rbind, tab2))
> printCoefmat(tab2, has.Pvalue = TRUE)
W p.value
A 0.9891 0.5895
B 0.4590 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
यह मिल गया है स्क्रीन है कि आप तो डालना करने के लिए उत्पादन फायरिंग की तुलना में बेहतर होने के लिए के माध्यम से?
'i' के लिए क्या है - क्या आपका मतलब पहली पंक्ति में 'y <- 1' था? –