在R中对Excel数据表进行排序和重新排列

我有一个包含数据的Excel文件(5列200行)。

行是下一个:

TransactionIdUserIdtransaction_datetransaction_statusamount_USD

data.table就是这样(它并不完整,只是为了抓住这个主意):

datatable1的屏幕截图

在此处输入图片说明

该任务将表重新排列,使其看起来像3列(transaction_date,CHARGED,DECLINED),其中CHARGED和DECKLINED-是具有相同状态(收费或已拒绝)的同一日期的所有amount_USD的总和。

因此,它看起来应该像这样:

在此处输入图片说明

而且,当我使用此类代码从Excel导入时-是否正确?

> library("xlsx")

> data1 <- read.xlsx("d:/R/1.xlsx", 1)
史蒂文·雷迪克

听起来您想按日期和交易类型(收费/已拒绝)进行分组。

我不确定您是否出于特定原因打算使用R,所以为您省力,我将向您展示在R中使用R的一种方法以及如何在Excel中使用R。

  • 使用R

如果您打算将R用于此任务,则可能需要将当前Excel文件'filename.xlsx'另存为'filename.csv',因为R需要一些其他库才能读取Excel本机文件。他们从来没有为我工作过,所以我只使用.csv文件。
我创建的dummy_csv文件的格式与您一样,因此只需根据需要更改代码即可:

> dummy_csv
  transaction_ID      Date Transaction_type    Amount
1            101 12.1.2016          Charged  $270.29 
2            102  1.6.2015         Declined  $840.25 
3            103 12.1.2016          Charged  $233.26 
4            104  1.7.2016         Declined  $406.04 
5            105  1.7.2016          Charged  $886.73 
6            106 12.1.2016         Declined  $348.44 
7            107  3.8.1015          Charged  $430.09 
8            108  3.7.2015         Declined  $655.17 

这是代码:

install.packages('dplyr') # Install dplyr if you don't have it.
library(dplyr) # Load dplyr


dummy_csv <- read.csv("~/dummy_csv.csv") # Import dataset 

dummy_csv <- tbl_df(dummy_csv) # Convert to table dataframe via dplyr

dummy_csv$Amount <- sub(pattern = "$", # Get rid of dollar signs
                    replacement = "",
                    x=as.character(dummy_csv$Amount),
                    fixed=TRUE)

dummy_csv <- mutate(dummy_csv,Amount = as.numeric(Amount)) # Make the values numeric

dummy_csv <- dummy_csv %>%
            group_by(Date,Transaction_type) %>%
            summarise('Daily_Total' = sum(Amount))

R中的输出将是:

       Date Transaction_type Daily_Total
 (fctr)           (fctr)       (dbl)
1  1.6.2015         Declined      840.25
2  1.7.2016          Charged      886.73
3  1.7.2016         Declined      406.04
4 12.1.2016          Charged      503.55
5 12.1.2016         Declined      348.44
6  3.7.2015         Declined      655.17
7  3.8.1015          Charged      430.09
  • 使用Excel

您可以在不使用R的情况下在Excel中完成相同的任务。

  1. 在Excel中突出显示数据范围,然后单击“插入”菜单->数据透视表。

  2. 在“数据透视表”对话框中,将“日期”和“ Transaction_Type”拖到“行”框中。将“数量”拖到“值”框中,然后将计算设置为SUM()。

输出将是相同的。

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章