2013-08-16 127 views
-4

嘿,我想在循環中執行R;任何人可以幫助我走出如何在R循環中執行

對於如我有點的總和,我想沒有EMPID的點總和的0-10%等;如何R中

做如我有數據

empid    sumofpoints 
    1      10 
    2      30 

我想數據

percentageofsumpoints  countofempid 
    0-10      4 
    11-20      5 
    21-30      6 

等等.... 如何做到這一點在R,我一定要安裝的任何軟件包爲它

+1

你應該添加一個你已經嘗試過的代碼的例子,所以我們可以幫助你,而不是爲你做 – TylerDurden

+0

我不確定你到目前爲止所做的工作,但Google搜索會有幫助你。 R文檔非常好。 – cciotti

回答

2

無需安裝package.See http://nunn.rc.fas.harvard.edu/groups/pica/wiki/1f131/

簡單的for循環

for (i in 1:10){ 
    print(i) 
} 

在你的榜樣,您asssuming數據存儲在一個數據幀稱爲df

res <- NULL 
groups <- c(0,10,20,30,40,...) 
for (i in 2:length(groups)){ 
    res <- rbind(res,c(paste(groups[i],groups[i-1],sep="-"),nrow(df[df$sumofpoints <= groups[i] & df$sumofpoints > groups[i-1],]))) 
} 

您還可以使用apply函數,如果你想避免for陳述。這個例子中,我直接取自幫助文件

x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) 
dimnames(x)[[1]] <- letters[1:8] 
apply(x, 2, mean, trim = .2) 

編輯進一步這一how to avoid loops

0

對於大型數據集,請參閱包裝foreach。這允許使用%do%或使用%dopar%並行設置(對於大型數據集更快)的順序循環設置。

http://cran.r-project.org/web/packages/foreach/vignettes/foreach.pdf

對於並行計算,心,你將需要一個後端諸如「doParallel」或「DoSNOW」。還有「doMC」只適用於支持撥號系統調用的操作系統(這意味着不支持Windows)。