2015-05-08 42 views
0

我將如何使用應用或它的一個版本,以獲得周圍使用這種循環:使用應用來解決環路

data<- seq(from = -100, to = 100, by = 10) 
data 
times<- seq(from = 25, to = 100, by=25) 
for(i in 1:length(times)) 
{ 
    print(length(data[data < -times[i] | data > times[i]])/length(data)) 
} 

我計算「數據」數據幀的頻率表。

謝謝。

+0

從你的口頭描述來看,這聽起來像你正在尋找'table' – Frank

回答

0

你可以嘗試:

sapply(1:length(times), 
     function(i) length(data[data < -times[i] | data > times[i]])/length(data)) 

,輸出:

[1] 0.7619048 0.4761905 0.2857143 0.0000000 
2

這裏是一個矢量化的解決方案:

unname(#remove names 
    rev(#reverse order 
    cumsum(#cumulative sum 
     rev(#reverse order 
     table(#contingency table of the counts of each interval 
      cut(abs(data), c(times, Inf)) #cut into intervals 
     ) 
     ) 
    ) 
    ) 
)/length(data) 
#[1] 0.7619048 0.4761905 0.2857143 0.0000000 

注意data不是data.frame。