r - 数据表和Excel模板

标签 r excel data.table

我正在尝试将 Excel 模板中的数据导入 R。您可以在下面看到表格的外观:
enter image description here
此表包含两列的标题(例如 2021-2017 代表男性和女性),当我尝试将数据导入 R 时,这会导致问题。为了上传,我运行以下代码行:

Export_I01 <- data.table(
    read.xlsx("Export_I01.xlsx", startRow = 2, endRow = 4, sheetIndex = 1, header = TRUE)
)
输出如下图所示:
enter image description here
这不是好的输入,因为有一个后缀:例如 Male是第一列,但第三列是 Male.1 .那么任何人都可以帮助我以与 Excel 表格相同的格式输入这些数据吗?

最佳答案

没有简单的方法可以做到,但您可以想出一些解决方法。这个使用readxl , dplyr , zoo , 和 purrr :

dt <- read_excel("test.xlsx", col_names = F)
dt <- dt %>% mutate(pmap_df(., ~ na.locf0(c(...))))
colnames(dt) <- gsub("\\.NA", "", paste(dt[1,], dt[2,], sep = "."))
dt <- dt %>% filter(row_number() > 2)
结果是:
# A tibble: 2 x 6
  English Country        `2021-2017.Male` `2021-2017.Female` `2016-2012.Male` `2016-2012.Female`
  <chr>   <chr>          <chr>            <chr>              <chr>            <chr>             
1 1       Czech Republic 5                55                 5                5                 
2 2       Denmark        5                0                  0                0 

关于r - 数据表和Excel模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69663848/

相关文章:

r - 可以为不在包中的对象创建 Rd 帮助文件吗?

r - 将元素追加到 R 函数中的列表

xml - 如何使用 Excel VBA 导入 XML 数据?

java - 使用 JAVA 在 CSV 文件中创建列

R在一天中的最小和最大时间获取值

r - 使用 data.table 提取行中的最后一个非缺失值

r - 如何根据另一个数据框中的值定义数据框中的计算?

r - 使用 R 线性回归进行机器学习

vba - Excel Shapes.Range(Array ("someName")) - 定义的范围是什么?

r - 带过滤器 data.table 的笛卡尔积