Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R导入具有多个行名称的excel矩阵_R_Excel - Fatal编程技术网

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

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

我对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表格:

您可以按以下方式导入文件:

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