我已使用table命令返回我的数据的统计信息:
subject<-c(4,4,2,2,3,3)
correct<-c(0,1,1,1,0,0)
test<-data.frame(subject,correct)
freq_test<-head(table(test$subject,test$correct))
这将返回一个如下所示的表
0 1
2 0 2
3 2 0
4 1 1
这很好,但问题是我想,第一列是vector而不是row.names(这样我就可以将它正确编码为“subject”)。 有没有办法让这个专栏以这种方式行事?
答案 0 :(得分:11)
只需创建一个新的数据框,其中行名为freq_test
作为第一列:
> df<-data.frame(as.numeric(rownames(freq_test)),freq_test)
> colnames(df)[1]="subject"
> df
subject X0 X1
2 2 0 2
3 3 2 0
4 4 1 1
>
当然,您可以通过编辑上面的X0
将X1
和colnames(df)
重命名为您想要的任何内容。
答案 1 :(得分:1)
如果你想要“长”格式的数据(对某些模型和绘图有用,特别是当你的表更复杂时),泛型函数as.data.frame
的表方法将为你处理这个问题:
> as.data.frame(table(test))
subject correct Freq
1 2 0 0
2 3 0 2
3 4 0 1
4 2 1 2
5 3 1 0
6 4 1 1
答案 2 :(得分:0)
我认为你应该使用构造data.frame的标准方法,它有name = values对:
test <- data.frame( subject=subject, correct=correct)
第一个subject
将被解释为要引用的名称,第二个subject
将被解释 ....即,将搜索封闭的环境名为subject
的对象,其值将分配给“test”的“subject”列。