我在R中经常使用tapply(),但我不知道为什么在应用tapply()函数后突然转换量级的顺序。
加载原始CSV数据时,数据显示如下。
Barcode Group Price
1002-01-23 A 10.23568975
1002-01-24 A 2356.25
1002-01-25 A 123.54897
1002-01-26 A 200.1548794
但是,在使用R代码后,Price的数字转换如下。
Barcode Group Price mean
1002-01-23 A 10.23569 672.5474
1002-01-24 A 2356.25000 672.5474
1002-01-25 A 123.54897 672.5474
1002-01-26 A 200.15488 672.5474
我想得到672.5473847875(=(10.23568975 + 2356.25 + 123.54897 + 200.1548794)/ 4)作为平均值的结果。我怎么能解决这个问题?让我告诉你我的R代码。
barcode <- read.csv("barcode.csv",header=T)
barcode$Group <- as.factor(barcode$Group)
barcode$Price <- as.numeric(barcode$Price)
test <- tapply(barcode$Price, barcode$Group, mean)
test1 <- data.frame(Group=names(test), mean=test)
barcode$mean <- test1$mean[match(barcode$Group, test1$Group)]
我真的需要你的帮助。非常感谢你。
答案 0 :(得分:1)
正确计算平均值。最简单的方法是测试它:
barcode$mean == 672.5473847875
[1] TRUE TRUE TRUE TRUE
您可以通过例如
更改默认的打印位数options(digits=15)