-1

我对 R 的数据集成部分相当陌生,在这种情况下,我试图将每月财务试算表转换为一个平面文件,以便准备好进行进一步分析。输入数据可以在附图中看到。它是每月试算表,每个账户都有期初余额和期末余额,用名称和帐号指定。“培训文件”都位于与名称“Jan19.xlsx”、“Feb19.xlsx”和“Mar19.xlsx”下的工作目录相同的文件夹中。

我想合并输入数据,以便水平列出每个月的期末余额。需要在命令中指定的是,例如在 3 月 19 日,在公司的试算表中添加了一个新帐户,这需要在想要的结果中显示(如附图所示)。在此之前的每个月的值(期末余额)需要设置为零。有人知道如何用 R 解决这个问题吗?

非常感谢您的帮助!

在此处输入图像描述

4

1 回答 1

0

首先读入数据。

library(readxl) # from the tidyverse to read excel files

filenames <- c('Jan19.xlsx', 'Feb19.xlsx')
# example with two files (can be easily extended)

# skip the first 5 files when reading the data
datalist <- lapply(filenames, function(z) read_excel(z, skip = 5))

现在合并它们,确保按帐号合并,不要忘记 all = TRUE 否则您将进行内部连接。

merged_data <- Reduce(function(x, y) merge(x, y, by= c('Account', 'Account name'), all = T), datalist)
merged_data[is.na(merged_data)] <- 0 # set NA to zero

最后重命名列。

colnames(merged_data)[-c(1:2)] <- sapply(filenames, function(z)unlist(strsplit(z, "[.]"))[1])
于 2019-11-25T03:58:16.587 回答