【发布时间】:2015-07-08 14:09:44
【问题描述】:
我正在尝试编写一个简单的函数来汇总一些数据。 我构造了一个带有 4 个参数的函数,以根据某些类别对主表进行子集化。 问题是,当我使用将我的数据子集(统一)的参数运行函数时,我看不到打印的汇总统计信息或子集表。基本上,代码只适用于以下行:return(tabel_masive_global)。
这里是代码。谢谢。
> #Functie tabel avansat
fct_tab_av <- function(baza, unitate){
#Incarcare pachete necesare
library(plyr)
library(xlsx)
#Sumarizarea pe toti peretiii
print("---------------------------------------------------------------------------------------------")
print("#Sumarizare pentru toti peretii")
print(summary(baza))
#Tabel statistic global pe masive
print("---------------------------------------------------------------------------------------------")
print("#Tabel statistic global pe masive")
tabel_masive_global <- ddply(baza,~Masiv, summarise, Nr_Pereti=length(Masiv),S_tot = sum(Suprafata), S_med=mean(Suprafata), H_med = mean(Inaltimea), Pa_med=mean(Panta), Alt_med=mean(Altitudinea), SD_Suprafata=sd(Suprafata), SD_Inaltimea=sd(Inaltimea), SD_Panta=sd(Panta), SD_Altitudinea=sd(Altitudinea))
return(tabel_masive_global)
#Subset pe unitate
subs_unitate <- subset(baza, Unitate=="unitate")
return(subs_unitate)
#Sumarizare pe unitate
print("---------------------------------------------------------------------------------------------")
print("#Sumarizare pe unitate")
print(summary(subs_unitate))
#Tabel statistic pe unitate in functie de litologie
print("---------------------------------------------------------------------------------------------")
print("Tabel statistic pe unitate in functie de litologie")
tabel_unitate <- ddply(subs_unitate, ~Litologia_N, summarise, Nr_Pereti=length(Masiv), Proc_Pereti=((Nr_Pereti*100)/(nrow(x))), S_tot = sum(Suprafata), S_med=mean(Suprafata), H_med = mean(Inaltimea), Pa_med=mean(Panta), Alt_med=mean(Altitudinea), SD_Suprafata=sd(Suprafata), SD_Inaltimea=sd(Inaltimea), SD_Panta=sd(Panta), SD_Altitudinea=sd(Altitudinea))
return(tabel_unitate)
}
【问题讨论】:
-
一旦你返回,函数结束。在最后做类似 return(a,b,c,d) 的事情。
-
@jeremycg 你应该把它写成答案
-
一个函数只能返回一个“事物”。如果要返回多个元素,可以将它们放在函数 end 的列表
return(list(a,b,c,d))中。