对于我的统计课程,我使用R为我的学期项目做一些数学运算。班级没有要求它,但我想通过学习R来补充自己,这是我较弱的语言。
使用这些数据: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
然而,excel表明,吃喝玩乐的总数是1449。
这显然是我的用户错误,但我的错误是什么?从概念上讲,我认为我已经正确地做到了这一点,所以我唯一可以假设的是我误解了求和函数的某些部分(colSums
,rowSums
或{{1} }等等)
答案 0 :(得分:6)
这是dims = 1
中的sum
参数。当x = c(1,1)
时,sum(x)
会给你2,但sum(x, dims = 1)
等于3.有关该参数的信息会给予额外的+1。
答案 1 :(得分:5)
您的错误源自sum
功能:
total = sum(rowTotals, na.rm=FALSE, dims = 1)
它将dims = 1
解释为要添加的数字。删除它,它将按预期工作。