2015-11-26 188 views
1

我有一個序列:[R創建數據幀

seq <- seq (5, 10) 

和列表像花車:

values<-runif(20,0,15) 
> values 
[1] 3.9826299 5.5818585 8.5928005 13.6231168 3.0252290 13.4758453 
[7] 14.1701290 9.9119669 9.4367107 0.9267941 3.0896186 2.6483513 
[13] 10.3053427 5.7615558 11.5476213 7.4654886 10.7642776 14.8785914 
[19] 5.7005277 11.6616783 

我需要建立數據幀,其中第一列包含sequence,二 - 數數來自values,這比序號大。 像

seq sum 
1 5 15 
2 6 12 
3 7 12 
4 8 11 
5 9 10 
6 10 8 
+5

請出示一個小例子並根據該示例的預期輸出 – akrun

+1

我建議參加[tour]並特別閱讀[ask] – Tensibai

+0

列表:0.0159,0.02,0.3,1.2,3.2 序列:0,0.1,0.2,0.3,0.4 結果將是如下數據幀: 0 - 5; 0.1 - 3; 0.2 - 3; 0.3 - 2; 0.4 - 2; –

回答

1

如果我理解正確的話,這樣的事情:

> set.seed(1) 
> seq<-5:10 
> values<-runif(20,0,15) 
> values 
[1] 3.9826299 5.5818585 8.5928005 13.6231168 3.0252290 13.4758453 
[7] 14.1701290 9.9119669 9.4367107 0.9267941 3.0896186 2.6483513 
[13] 10.3053427 5.7615558 11.5476213 7.4654886 10.7642776 14.8785914 
[19] 5.7005277 11.6616783 
> data.frame(seq,sum=sapply(seq,function(x)sum(values[values>x]))) 
    seq  sum 
1 5 152.8775 
2 6 135.8336 
3 7 135.8336 
4 8 128.3681 
5 9 119.7753 
6 10 100.4266 

編輯:從您的評論,它看起來像你真的想這樣:

> data.frame(seq,sum=sapply(seq,function(x)sum(values>x))) 
    seq sum 
1 5 15 
2 6 12 
3 7 12 
4 8 11 
5 9 10 
6 10 8 
+0

我只需要數一數,但這是幫助,謝謝 –

+0

謝謝sooo多,我不能得到這個幾個小時! –

+0

你可以使用'colSums(sapply(seq,「<」,values))'' –