首页 > 解决方案 > DataFrame 中列的 SUM 问题

问题描述

我有 10 列的 CSV 文件,其中之一是“invoice_amount”。我使用以下代码导入“invoice_amount”:

df <- read_csv('C:/Users/kamsiong.ong/Desktop/CSV/( J_T ) July 2021 BC01 ( 1 ).csv', 
               col_types = cols_only(invoice_amount = col_double()))

获取数据框的概述:

> str(df)
spec_tbl_df [1,039,040 x 1] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
 $ invoice_amount: num [1:1039040] 4.66 4.66 4.66 4.66 4.66 4.66 4.66 4.66 4.66 4.66 ...
 - attr(*, "spec")=
  .. cols_only(
  ..   logistics_provider = col_skip(),
  ..   account_no = col_skip(),
  ..   invoice_no = col_skip(),
  ..   ebs_keyed_in_period = col_skip(),
  ..   `pick_up date` = col_skip(),
  ..   consignment_no = col_skip(),
  ..   invoice_amount = col_double(),
  ..   status = col_skip(),
  ..   subsq_status = col_skip(),
  ..   remark = col_skip()
  .. )
 - attr(*, "problems")=<externalptr> 

我尝试合计发票金额,结果令我惊讶>>不适用

sum(df$invoice_amount)
[1] NA

尝试总结 10 个发票金额如下,我得到了正确的结果。

t <- slice(df, 1:10)
> sum(t)
[1] 46.6

想知道有什么问题sum(df$invoice_amount)吗?

标签: rtidyverse

解决方案


我们可以使用sum_whichhablar自动删除NA

library(hablar)
sum_(df$invoice_amount)

推荐阅读