R语言如何创建不含小数位的均值、标准差结果表
问题根源
你原有代码不生效的核心原因是:round(Mean, digits = 0)、round(SD, digits = 0)这两行仅在控制台输出了临时取整的结果,没有将取整后的值保存回变量,后续执行rbind(Mean,SD)时调用的仍是未取整的原始计算值,所以输出一直带小数。
可行代码方案
你可以根据自己的使用场景二选一:
- 方案1:计算环节直接取整,一步得到最终结果
# 计算均值、标准差时直接做取整处理,结果直接存为整数 Mean <- tapply(NKurdish$VOT, NKurdish$Stop, function(x) round(mean(x), digits = 0)) SD <- tapply(NKurdish$VOT, NKurdish$Stop, function(x) round(sd(x), digits = 0)) # 合并为最终表格 result <- rbind(Mean, SD) print(result)
- 方案2:保留原始未取整的计算值,仅输出表格时取整,适合后续需要用原始值做其他分析的场景
# 先保留原始计算结果 Mean_raw <- tapply(NKurdish$VOT, NKurdish$Stop, mean) SD_raw <- tapply(NKurdish$VOT, NKurdish$Stop, sd) # 取整后再合并输出 Mean <- round(Mean_raw, digits = 0) SD <- round(SD_raw, digits = 0) result <- rbind(Mean, SD) print(result)
对应你的测试数据输出
运行上述代码后,得到的无小数结果如下:
[,1] [,2] [,3] [,4] [,5] [,6] Mean -117 -130 -117 84 55 66 SD 37 33 28 18 12 18
小提示:如果需要将结果导出为外部文件,可以先执行
result_df <- as.data.frame(result)将矩阵转为数据框,再调用write.csv等函数导出即可。
内容的提问来源于stack exchange,提问作者lureen naser
相关产品推荐
相关产品推荐

