【发布时间】:2018-02-17 16:33:58
【问题描述】:
首先,请参阅this url,了解我正在格式化的数据类型的一个小示例。您会注意到我在工作表中突出显示了我要选择的两个区域。随着项目进出数据集,选择范围需要是动态的。对于第一部分,我认为这段代码就足够了:
library(tidyverse)
library(readxl)
filename <- "MyDataset.xlsx"
#obtain first section of my excel spreadsheet
project_codes <- read_excel(
path = filename,
sheet = "Jan18",
range = "A10:B1000",
col_names = c("proj_num", "name")
) %>%
drop_na() %>%
filter(grepl("-", project_codes$proj_num))
第二部分是我被绊倒的地方...我想确保在电子表格的另一个突出显示区域中选择的行子集与我的“project_codes”完全相同。
我有许多以完全相同的方式格式化的工作表(并且命名约定是一致的 - Jan18、Feb18、Mar18),所以如果有人可以在解决第 1 部分后帮助我遍历工作表,则可以加分。
【问题讨论】:
-
假设我们从第 6 行向下捕获,是您想要在标题下的每张表中捕获的所有值:“#”、“项目名称”、“状态”、“累积账单”, “账单调整”、“合同价值”?
-
是的 - 并且都在同一列位置 - 如果需要,我可以重命名这些列
-
您的最后一行无法正常工作。我会把它改成
filter(str_detect(proj_num, "-"))。 -
为什么不直接抓取 A 到 N 列的所有内容,然后使用
select()删除不需要的列? -
假设有 100 列“噪音”——我不禁相信有一个更有效的答案。
标签: r regex excel dplyr readxl