将Excel数据导入R

时间:2015-07-27 22:25:10

标签: r excel algorithm matrix

我正在处理一个由261 x 10矩阵组成的excel文件。矩阵由2010年至2015年的10只股票的每周回报组成。因此,每个变量我有10个变量(股票)和261个观察值(每周回报)。 对于我的硕士论文,我必须在我的矩阵上应用由Rüschendorf和Puccetti(2012)开发的“重排算法”。我不会进一步了解该概念的理论方面。问题是我下载了一个能够在R中执行重新排列算法的软件包。我测试了它并且它完美地工作。

实际上我唯一需要知道的是如何将我的excel-matrix导入R中,以便能够对其执行重排算法。我可以通过使用R中的矩阵编程公式对矩阵的每个元素进行编码,将我的矩阵重写为R(手动):

A = matrix( c(), nrow= , ncol= , byrow=TRUE)

问题在于对这么大的矩阵(261 x 10)这样做会非常耗时。他们是否可以在R中导入我的excel-matrix,并且R将其识别为由准备计算的数值组成的矩阵(类似于手动执行的情况)?以这种方式,我只需要运行R。

中提供的“重新排列算法”功能

提前致谢。

2 个答案:

答案 0 :(得分:1)

我在打开的Excel工作表中进行选择并复制到剪贴板。然后这在Mac上工作:

> con=pipe("pbpaste")
> dat <- data.matrix( read.table(con) )
> dat
      V1 V2 V3
 [1,]  1  1  1
 [2,]  2  2  2
 [3,]  3  3  3
 [4,]  4  4  4
 [5,]  5  5  5
 [6,]  6  6  6
 [7,]  7  7  7
 [8,]  8  8  8
 [9,]  9  9  9
[10,] 10 10 10
[11,] 11 11 11
[12,] 12 12 12
[13,] 13 13 13
[14,] 14 14 14

该方法在Windows设备上有所不同,但?connections的帮助页面应该具有您特定于操作系统的技术。

答案 1 :(得分:0)

您没有提供可重复性最小的示例,因此答案可能质量较差。无论如何,您应该能够使用以下内容加载excel文件:

require(XLConnect)
wrkbk <- loadWorkbook("path/to/your/data.xlsx")
df <- readWorksheet(wrkbk, sheet = 1, header = TRUE)

然后通过

data.frame转换为matrix
ans <- as.matrix(df)

否则,您需要将文件另存为.txt.csv纯文本文件,并使用read.tableread.csv等。请参阅各自的帮助页面。