R 我试图制作一个简单的数据帧,而我使用的代码并没有达到我的预期
我有以下功能:R 我试图制作一个简单的数据帧,而我使用的代码并没有达到我的预期,r,dataframe,linear-regression,R,Dataframe,Linear Regression,我有以下功能: linearPerf_DF = (linearPerf_Func(data)); 这个函数返回两个数字,typeof(linearPerf_DF)告诉我它是“double”。不确定这是否是问题的开始。当我打印linearPerf_DF时,在R中看起来像这样: ## [1] 0.2600 0.2601 ## [1] "double" 在这种情况下,我可以引用两个变量,如: linearPerf_DF[1] linearPerf_DF[2] 然后,我构建了
linearPerf_DF = (linearPerf_Func(data));
这个函数返回两个数字,typeof(linearPerf_DF)告诉我它是“double”。不确定这是否是问题的开始。当我打印linearPerf_DF时,在R中看起来像这样:
## [1] 0.2600 0.2601
## [1] "double"
在这种情况下,我可以引用两个变量,如:
linearPerf_DF[1]
linearPerf_DF[2]
然后,我构建了一个简单的数据帧,最初的目的是在这个空白帧中对每一行进行rbind()
error_Df = data.frame(Error_Value = double(),Model_Type=character(),Test_or_train=character())
我用一个列表展示数据帧,它允许我在模型中循环多次(因为vector不能保存不同的数据结构):
我想看到的是
## Error_Value Model_Type Test_or_train
## 1 0.2600 Linear Train
## 2 0.2601 Linear Test
## 3 0.215 Quadratic Train
## 4 0.2459 Quadratic Test
但我真正看到的是:
## Error_Value Model_Type Test_or_train
## 1 0.2600 Linear Train
## 2 0.2300 Linear Train
## 3 0.3150 Linear Train
## 4 0.2777 Linear Test
数字是不同的,因为还有几个模型,但我认为我的意图是有意义的?基本上,我将循环浏览模型中的每个数字,然后添加这两列以进行箱线图。花了几个小时在这上面,不知道出了什么问题
我只能使用Base R,所以dyplr和其他类似的工具不会有帮助
非常感谢
编辑:
打印(dput(linearPerf_DF))给出:
你能把
dput(linearPerf\u-DF)
的输出分享给你的帖子吗?也许你不能解决这个问题,但是你可以用一个线性的方法来创建相同的结果:data.frame(Error\u Value=c(linearPerf\u-DF[1:2],QuadPerf\u-DF[1:2]),Model\u-Type=rep(c(“线性”,“二次型”),each=2),Test\u或\u-train=rep(c(“火车”,“测试”),times=2))
。打印(dput>(linearPerf_DF))给出:请参见上文。在您共享的信息的代码中未发现任何错误。可能您需要添加更多详细信息。我认为您正在for
循环中运行此功能,可能需要添加如何在循环中调用此功能。您能否创建一个小示例,让我们重现您遇到的错误?在运行error_Df[1+i,]=
,error_Df[2+i,]=
,…在一个循环中,在第一次迭代中,您写入行1、2、3、4;在第二次迭代中,您写入行2、3、4、5,从而在现有行的基础上重写,等等。对于循环,您需要做的是使用error_Df[1+4*(i-1),]=..
然后错误[2+4*(i-1),]=..
等等。但是正如r2evans所指出的,R有更好的方法来进行这种循环,避免考虑单个索引。
## Error_Value Model_Type Test_or_train
## 1 0.2600 Linear Train
## 2 0.2300 Linear Train
## 3 0.3150 Linear Train
## 4 0.2777 Linear Test
## c(0.26, 0.2601)
## [1] 0.2600 0.2601