R使用多个行名称导入excelmatrix

我在R编程中是全新的。 我必须把excelmatrixembedded到R中,并把它转换成普通表格。 我刚开始的时候遇到了一个问题:/ excel / csvmatrix导入有很多可能性,但是我不知道如何让它读取更多的行名。

这是一个例子:

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

a1,a2,a3是年份列表b1,b2,b3是城市列表 – 这一行没有名字,但它应该

最后我需要做一个简单的表格

Colname1,Colname1,Year,City,Data

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

表

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

 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]) 

结果

这些简单的转换会生成一个(或多或less)整洁的数据框架,您应该可以轻松地重新devise和操作:

 > 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中准备好数据集,特别是当您刚刚开始使用R时。所以根据matrix的大小(有多less列),我会考虑调整在Excel中的列名称,即只使用一列的名称,例如

 Colname1 | ColName2 | b1, a1 | b2, a2 | b3, a3 c1 d1 xxx c2 d2 xxx c3 d3 xxx 

关于数据导入到R的一个很好的教程可以在这里find: https : //www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r 。