我正在處理名爲「all
」的產品的data.frame,其第一個變量all$V1
是產品系列。每個產品系列有幾行,即length(levels(all$V1))
< length(all$V1)
。R - 在循環還是向量中遍歷data.frame的級別?
我想遍歷產品系列「p
」中的data.frame和process。我是R新手,所以當我可以做矢量或者循環時,我還沒有完全掌握。此刻,我可以遍歷並獲得由子組:
for (i in levels (all$V1)){
p = all[which(all[,'V1'] == i), ];
calculateStuff(p);
}
這是做到這一點的方式,或者是有與apply
什麼這樣做的常規矢量方式?只有幾千行,所以性能增益可能是可以忽略不計的,但我想爲更大的數據傳輸開闢良好的習慣。
查看'aggregate'。它基本上是'tapply'的包裝器,併爲data.frame的子集計算彙總統計信息。有這樣做的不同方式,「聚合」是否合適取決於你想要計算的東西。但這是一個好的開始,使用起來非常方便。 – SimonG 2014-10-02 14:43:42
有十幾種方法可以做到這一點。通常你會使用實現「拆分應用組合」概念的功能。看看軟件包plyr,dplyr,data.table。 – Roland 2014-10-02 14:56:41