我是 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 = " ")
预习
获得的对象将很容易操作:
> 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/