1

我通过 COM 接口将数据从 C# 传递到 R。当数据到达 R 时,它被存放在一个“矩阵”中。我使用的一些函数要求数据位于“DataFrame”内。我使用转换数据结构

newDataFrame <- as.data.frame(oldMatrix)

数据表达到 R 就好了,但是一旦我转换到 DataFrame,它假定我所有的数字数据都是因素!

所以它变成: {34, 46, 90, 54, 69, 54} 变成 {1, 2, 3, 4, 5, 4}

我的数据表确实有因素,所以我不能强迫整个事情都是数字的。有没有办法解决?注意:我无法将数据作为 CSV 导出到文件系统并手动将其读入 R。

附带说明一下,我正在使用的需要 DataFrame 的功能是使用的“Hmisc”包

hist.data.frame(dataFrame)

这会为 DataFram 中的每一列数据生成频率直方图,并将它们全部排列成网格模式(非常漂亮)!

谢谢!-戴夫

4

2 回答 2

5

我认为您误诊了问题-矩阵中的所有列都必须属于同一类型,因此这很可能是问题出现的地方,而不是转换为数据框。

于 2010-07-27T01:16:50.533 回答
1

我以前遇到过这个问题。读取数据时需要设置 stringsAsFactors=F。

现在,您可以将单个变量/列转换为因子(即,使用 as.numeric() 等),而不必担心如何处理数字。

于 2010-07-26T21:10:47.257 回答