2017-04-16 29 views
1

對於我的統計類,我使用R來爲我的術語項目做一些數學運算。課堂並不要求它,但我想通過學習R來補充自己,這是我的弱語言。R:rowSums的總和減1

使用此數據:skittle-data.csv(每一行提交每個學生吃喝玩樂的單個袋)

我試圖生成一些圖表和其他的東西來滿足分配。當我這樣做的時候,我注意到在確定我吃掉的吃喝玩樂總數爲1時。

當我將csv加載到一個數據框中時,我對這些行進行求和,然後對這些求和進行求和得到總和此:

skittles = read.csv("skittle-data.csv", header = TRUE) 
columnTotals = colSums(skittles, na.rm=FALSE, dims = 1) 
rowTotals = rowSums(skittles, na.rm=FALSE, dims = 1) 
total = sum(rowTotals, na.rm=FALSE, dims = 1) 

print("Column Totals") 
print(columnTotals) 

print("Row Totals (individual bags)") 
print(rowTotals) 

print('Total skittles') 
print(total) 

從我的終端輸出運行我的代碼:

[1] "Column Totals" 
    Red Orange Yellow Green Purple 
    269 289 296 295 300 
[1] "Row Totals (individual bags)" 
[1] 62 62 60 60 60 62 59 61 57 59 62 59 59 62 64 62 63 61 60 60 58 59 60 58 
[1] "Total skittles" 
[1] 1450 

然而練成示出長短的總數是1449

skittle data - excel file

這顯然是我的用戶錯誤,但是我的錯誤是什麼?從概念上講,我認爲我已經正確地做到了這一點,所以我可以承擔的唯一的事情是,我誤解的求和函數(colSumsrowSums,或sum等)

+0

@ epi99我真的不知道如何解釋你的評論,它確實沒有告訴我更多的比你的意見(記住,這是我最弱的語言,所以我可能會誤解多個事情,將不得不直接與你想告訴我的)...從這個參考(https://stat.ethz.ch/R-manual/R-devel/library/base/html/colSums.html)它似乎表明這是必需的。我將更新問題以顯示最近的代碼,其中不包括dims,但這並不能解決總體問題。 –

+4

你會在'sum'裏放入任何命名參數,除了'na.rm'之外:'sum(a = 1,b = 2,3)'返回6. – alistaire

+0

@alistaire讚賞你!感謝您解決問題的根源,我非常感謝! –

回答

6

它在sumdims = 1參數某些部分。當x = c(1,1),然後sum(x)給你2,但sum(x, dims = 1)等於3.有關該參數的東西給出了額外的+1。

+0

你幾乎擊敗@Eldioo,但你是對的。這是參數。除非有人打破實際的問題,並解釋當我錯誤地使用它時該做什麼參數,我會選擇你的答案作爲正確答案。謝謝! –

+1

dims不是'sum()'中的參數。正如@alistaire指出的那樣,'sum'將'dim = 1'解釋爲一個向量,並將其與'x'一起求和(因此爲什麼你需要額外的1)看看'sum' –

+0

@MikeH。謝謝你指出該評論,我還沒有看到它,但這正是我不明白的解釋!謝謝! –

5

你的錯誤從sum功能梗:

total = sum(rowTotals, na.rm=FALSE, dims = 1) 

它解釋dims = 1爲一個數字,以復加。刪除它,它會按預期工作。