R导入具有多个行名的excel矩阵

标签 r excel

我是 R 编程的新手。我必须将 excel 矩阵导入 R 并将其转换为普通表格。
我刚开始就有一个问题:/excel/csv 矩阵导入确实有很多可能性,但我不知道如何让它读取更多的行名。

这是示例:

          |  Year       a1  a2  a3
Colname1  |  ColName2   b1  b2  b3   
   c1          d1        x   x   x
   c2          d2        x   x   x
   c3          d3        x   x   x

a1,a2,a3 是年份列表
b1,b2,b3 是城市列表 - 此行没有名称,但应该

我最后需要的是制作一个简单的表格

Colname1, Colname1, 年份, 城市, 数据

最佳答案

假设您正在处理类似于下面 Excel 表格的数据:

Table

您可以通过以下方式导入文件:

require(readxl)
xlImp <- read_excel(path = "file.xlsx", sheet = 1,
                    col_names = FALSE, na = " ")

预习

获得的对象将很容易操作:
> head(xlImp)
        X0          X1 X2 X3 X4
1     <NA> Year        a1 a2 a3
2 Colname1    Colname2 b1 b2 b3
3       c1          d1  1  4  7
4       c2          d2  2  5  8
5       c3          d3  3  6  9

打扫

然后,您可以使用导入的数据进行一些基本操作,例如设置列名:
# Simple cleaning
Vectorize(require)(package = c("tidyr", "dplyr", "magrittr"),
                               char = TRUE)

# Set column names
xlImp %<>% 
  setNames(gsub(".", "", make.names(paste(.[1,], .[2,])), fixed = TRUE)) %>%
  ## Clean row redundant rows
  filter(row_number() %in% 3:dim(xlImp)[2])

结果

这些简单的转换将生成一个(或多或少)整洁的数据框,您应该可以轻松地对其进行整形和操作:
> head(xlImp)
Source: local data frame [3 x 5]

  NAColname1 YearColname2  a1b1  a2b2  a3b3
       (chr)        (chr) (chr) (chr) (chr)
1         c1           d1     1     4     7
2         c2           d2     2     5     8
3         c3           d3     3     6     9

关于R导入具有多个行名的excel矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36764051/

相关文章:

mysql - 在向后查找和向前查找特定日期列中的日期中查找最近的日期

c++ - 使用 Rcpp 使用最新的 QuantLib 代码

r - Chrome 调试端口 10 秒后未打开

excel - 设置Excel电子表格的 "Title"属性

vba - vba 的单个子/函数中可以使用多少个变量?

r - 如何创建功能区图?

在水平堆叠条形图中重新排序堆栈 (R)

c# - Excel 导入的 SQL 注入(inject)漏洞

vba - Excel 中的 HMAC SHA256 宏

excel - 运行时错误 '6' 溢出(Excel VBA)