R导入具有多个行名称的excel矩阵
我对R编程一无所知。我必须将excel矩阵改进为R,并将其转换为普通表格。 刚开始时我遇到了一个问题:/excel/csv矩阵导入的可能性确实很大,但我不知道如何让它读取更多的行名称 以下是一个例子:R导入具有多个行名称的excel矩阵,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
| 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表格: 您可以按以下方式导入文件:
require(readxl)
xlImp <- read_excel(path = "file.xlsx", sheet = 1,
col_names = FALSE, na = " ")
从我的经验来看,最简单的方法是在Excel中导入数据集,然后再导入R,特别是当您刚开始使用R时,根据您的矩阵的大小(多少列),我会考虑调整Excel中的列名,即只使用一行的列名,例如
。Colname1 | ColName2 | b1, a1 | b2, a2 | b3, a3
c1 d1 x x x
c2 d2 x x x
c3 d3 x x x
可以在此处找到有关将数据导入R的精彩教程:。您可以使用read.csv或read。表中,我建议你上网查一下,有100条评论。例如如果它不能解决你的问题。您应该给出一个数据示例和输出示例。因此,人们可以帮助您使用它,它看起来像Excel中的数据透视表。如何读取数据源本身并在R中执行所有计算:)
# 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
Colname1 | ColName2 | b1, a1 | b2, a2 | b3, a3
c1 d1 x x x
c2 d2 x x x
c3 d3 x x x