簡體   English   中英

從函數R返回多個數據幀

[英]Return multiple data frames from function R

我試圖將一個函數組合在一起,該函數將以塊為單位循環給定的數據幀,並返回一個包含從原始數據中計算出的內容的新數據幀。 x的長度每次都會不同,實際問題將在函數中包含更多循環。 對R來說是新詞,卻找不到任何有用的東西(我認為使用列表不會有幫助)

func<-function(x){
    tmp # need to declare this here?
    for (i in 1:dim(x)[1]){
        tmp[i]<-ave(x[i,]) # add things to it
    }
    return(tmp)
 }
 df<-cbind(rnorm(10),rnorm(10))
 means<-func(df)

這段代碼不起作用,但是我希望它能解決我想做的事情。 謝謝!

您是說要遍歷df每一行並返回包含計算值的數據幀嗎?

您可能需要查看apply函數:

df <- cbind(rnorm(10),rnorm(10))
# apply(df,1,FUN) does FUN(df[i,])
# e.g. mean of each row:
apply(df,1,mean)

對於更復雜的循環(如按每個因素執行某些操作),我強烈建議使用package plyr ,並在其中ddply 快速示例:

df <- data.frame( gender=c('M','M','F','F'), height=c(183,176,157,168) )
# find mean height *per gender*
ddply(df,.(gender), function(x) c(height=mean(x$height)))
# returns:
  gender height
1      F  162.5
2      M  179.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM