2013-08-22 46 views
1

我想在R中執行一個簡單的Excel計算。比方說,我有一長串數字,我想從第2行減去第1行,從第4行減去第3行,以此類推,以便他們減去後面的數字對。我該怎麼做呢?如何在R中執行電子表格類型計算?

甚至更​​簡單一些。我如何從第2行減去第1行,然後從第3行減去第2行,依此類推?基本上我在這裏找到每兩行之間的區別。

這應該很容易,但我花了幾個小時嘗試一些事情,並尋找答案無濟於事。

請幫忙。

謝謝!

回答

4

您正在尋找功能diff()。該函數將計算兩個連續數量的向量之間的差異。

set.seed(1) 
x<-sample(1:10,10) 
x 
[1] 3 4 5 7 2 8 9 6 10 1 
diff(x) 
[1] 1 1 2 -5 6 1 -3 4 -9 
2

做你原來的版本比較第1和第2,第3和第4的問題,我想將數據轉換成一個矩陣,並做沿着列的diff。

set.seed(1) 
x=sample(1:10,10) 
x 
[1] 3 4 5 7 2 8 9 6 10 1 

所以我們的答案將是-1,-2,-6,3,9由(3-4),(5-7),(2-8),(9-6)和(10-1)。

這使得我們的矩陣:

> matrix(x,nrow=2) 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 3 5 2 9 10 
[2,] 4 7 8 6 1 

,然後我們應用diff成列,增加一個負號,因爲diff做減法反過來:

​​3210
相關問題