【问题标题】:Importing data in R from Excel with information cotained in header使用包含在标题中的信息从 Excel 导入 R 中的数据
【发布时间】:2021-04-07 09:19:50
【问题描述】:

正如标题所说,我正在尝试将数据从 Excel 导入到 R,其中部分信息包含在标题中。

我一个非常简化的方法,我的 Excel 是这样的:

GROUP;1234
MONTH;"Jan"
PERSON;SEX;AGE;INCOME
John;m;26;20000
Michael;m;24;40000
Phillip;m;25;15000
Laura;f;27;72000
Total;;;147000

读入 R 后,它应该是一个看起来像这样的“干净”数据集。

GROUP;MONTH;PERSON;SEX;AGE;INCOME
1234;Jan;John;m;26;20000
1234;Jan;Michael;m;24;40000
1234;Jan;Phillip;m;25;15000
1234;Jan;Laura;f;27;72000

我有几个看起来像这样的文件。然而,每个文件的人数各不相同。最后一行包含应该跳过的摘要。列表和摘要行之间可能有空行。

非常感谢任何帮助。非常感谢。

【问题讨论】:

  • 从 Excel 文件读入 R 的选项通常允许跳过行或读取最大行数。所以读取每个文件两次,首先最多 2 行,然后跳过前 2 行。然后重新格式化为所需的输出是一项更容易的数据整理任务

标签: r excel import


【解决方案1】:

可以使用readxl::read_excel()读取Excel文件 其中一个参数是skip,使用它您可以跳过您定义的某些行数。

对于您的数据,您需要跳过包含 GROUP 和 MONTH 的前两行。

您将获得以下格式的数据。

PERSON;SEX;AGE;INCOME;

John;m;26;20000

Michael;m;24;40000

Phillip;m;25;15000

Laura;f;27;72000

之后,您可以手动添加 GROUP 和 MONTH 列

【讨论】:

    【解决方案2】:

    非常感谢您的帮助。 @Aurèle 的提示带来了缺失的拼图。我现在想出的解决方案如下:

    group <- read_excel("TEST1.xlsx", col_names = c("C1","GROUP") ,n_max = 1)
    group <- group[,2]
    
    month <- read_excel("TEST1.xlsx", col_names = c("C1","MONTH") ,skip = 1, n_max = 1)
    month <- month[,2]
    
    data <- read_excel("TEST1.xlsx", col_names = c("NAME","SEX","AGE","INCOME") , skip = 4)
    data <- data[data$AGE != NA,]
    
    data <- cbind(data,group,month)
    data
    

    【讨论】:

      猜你喜欢
      • 2020-04-25
      • 2012-09-07
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-26
      • 2014-03-31
      • 1970-01-01
      相关资源
      最近更新 更多