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
Data structures 在R中将矩阵转换为数据帧时出现问题(R认为所有数字类型都是因子)_Data Structures_R_Matrix_Type Conversion_Dataframe - Fatal编程技术网

Data structures 在R中将矩阵转换为数据帧时出现问题(R认为所有数字类型都是因子)

Data structures 在R中将矩阵转换为数据帧时出现问题(R认为所有数字类型都是因子),data-structures,r,matrix,type-conversion,dataframe,Data Structures,R,Matrix,Type Conversion,Dataframe,我通过COM接口将数据从C#传递到R。当数据到达R时,它被封装在一个“矩阵”中。我使用的一些函数要求数据位于“数据帧”内。我使用 newDataFrame <- as.data.frame(oldMatrix) 这将为DataFram中的每一列数据生成一个频率直方图,并以网格模式(相当漂亮)排列它们 谢谢! -戴夫我以前有过这个问题。读取数据时,需要设置stringsAsFactors=F 现在,您可以将单个变量/列转换为因子(即使用as.numeric()等),而不必担心如何处理这些数

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

newDataFrame <- as.data.frame(oldMatrix)
这将为DataFram中的每一列数据生成一个频率直方图,并以网格模式(相当漂亮)排列它们

谢谢!
-戴夫

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


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

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


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

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

我认为您错误诊断了问题-矩阵中的所有列都必须是相同的类型,因此问题可能出现在这里,而不是转换到数据帧。

这起作用了!但是有没有一种方法可以让我通过编程来处理数值列和向量列,我要处理大量的数据,用手分析类似的东西可能是不现实的。你有一个简单的方法来区分数值变量和因子变量吗?如果变量包含字母,它将是一个因子,否则它应该被视为数值变量。我的问题是因为R将我的数值变量检测为字符串,不能将其视为因子。我不确定数据的确切格式,但我会尝试创建一些基于is.character()的函数,检查每个变量并相应地转换它。查看apply家族及其近亲(Lappy、tapply等)以获得像这样在R中循环的好方法。也发现了这一点,感谢您的所有输入!这成功了!但是有没有一种方法可以让我通过编程来处理数值列和向量列,我要处理大量的数据,用手分析类似的东西可能是不现实的。你有一个简单的方法来区分数值变量和因子变量吗?如果变量包含字母,它将是一个因子,否则它应该被视为数值变量。我的问题是因为R将我的数值变量检测为字符串,不能将其视为因子。我不确定数据的确切格式,但我会尝试创建一些基于is.character()的函数,检查每个变量并相应地转换它。查看apply家族及其近亲(Lappy、tapply等)以获得像这样在R中循环的好方法。也发现了这一点,感谢您的所有输入!
hist.data.frame(dataFrame)