问题
数据是按列组织的,需要将其放入一个数据框中。
解决方案
如果数据是由若干个向量或因子组成的,可以用data.frame函数将其组装成一个数据框:
代码
> dfrm <- data.frame(v1, v2, v3, f1,f2)
如果数据是包含在列表中的向量或因子,可以用as.data.frame函数:
代码
> dfrm <-as.data.frame(list.of.vectors)
讨论
数据框是由若干个列组成的,每一列对应一个观察的变量(统计意义上的变量,不是编程里面说的变量)。如果数据已经组织成了列的形式,将其组织成数据框就是很方便的事情了。
data.frame函数可以从向量构建出数据框,每个向量就是一个观察变量。假如有两个数值预测变量,一个分类预测变量和一个响应变量。data.frame函数把这些向量组织成数据框:
代码
> dfrm <- data.frame(pred1, pred2,pred3, resp)
> dfrm
pred1 pred2 pred3 resp
1 -2.7528917 -1.40784130 AM 12.57715
2 -0.3626909 0.31286963 AM 21.02418
3 -1.0416039 -0.69685664 PM 18.94694
4 1.2666820 -1.27511434 PM 18.98153
5 0.7806372 -0.27292745 AM 19.59455
6 -1.0832624 0.73383339 AM 20.71605
7 -2.0883305 0.96816822 PM 22.70062
8 -0.7063653 -0.84476203 PM 18.40691
9 -0.8394022 0.31530793 PM 21.00930
10 -0.4966884 -0.08030948 AM 19.31253
注意data.frame函数用变量的名称命名每一列数据。你也可以自己设定每一列的名称:
代码
> dfrm <- data.frame(p1=pred1,p2=pred2, p3=pred3, r=resp)
> dfrm
p1 p2 p3 r
1 -2.7528917 -1.40784130 AM 12.57715
2 -0.3626909 0.31286963 AM 21.02418
3 -1.0416039 -0.69685664 PM 18.94694
.
. (etc.)
.
另外,数据也有可能是以列表中的向量的形式,而不是独立的向量保存的,像这样:
代码
> lst <- list(p1=pred1, p2=pred2,p3=pred3, r=resp)
没问题,可以用as.data.frame函数从列表中创建数据框:
代码
> as.data.frame(lst)
p1 p2 p3 r
1 -2.7528917 -1.40784130 AM 12.57715
2 -0.3626909 0.31286963 AM 21.02418
3 -1.0416039 -0.69685664 PM 18.94694
.
. (etc.)
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。