我正在处理一个由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。
中提供的“重新排列算法”功能提前致谢。
答案 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.table
或read.csv
等。请参阅各自的帮助页面。