在R中生成向量并将其插入堆叠的框架中 [英] generate a vector in R and insert it in a stacked frame

查看:86
本文介绍了在R中生成向量并将其插入堆叠的框架中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我想堆叠一个框架,但我认为我使用的方式不正确...


I want to stack a frame but I think I do not use the right way...

myframe
 sex = F

     q8
cars   N   U   Y
       1  35  31  10
       2  34  23   7
       3 132 109  35
       4  38  36  14
       5   7   5   2

, , sex = M

     q8
cars   N   U   Y
       1  49  22  16
       2  24  13   8
       3 136  52  33
       4  37  31  32
       5  15  10   4

f = c(myframe[1:15])
m = c(myframe[16:30])

S <- stack(data.frame(f,m))


names(S)=c("num","gender")
group=c("1","1","1","2","2","2","3","3","3","4","4","4","5","5","5","6","6","6","1","1","1","2","2","2","3","3","3","4","4","4","5","5","5")

num=S$num
gender=S$gender
twoway.df=data.frame(num,group,gender)
twoway.df
1   1 35 f
2   1 31 f
3   1 10 f
4   2 24 f
5   2 13 f
      ....

您能帮我做得更好吗?

推荐答案

要将表转换为data.frame,基本功能as.data.frame.table应该起作用.

To transform a table into a data.frame, the base function as.data.frame.table should work.

但是,这就是我要怎么做:

Here is, however, how I would do:

myframe <- as.table(array(c(35, 34, 132, 38, 7, 31, 23, 109, 36, 5, 
                            10, 7, 35, 14, 2, 49, 24, 136, 37, 15, 
                            22, 13, 52, 31, 10, 16, 8, 33, 32, 4), 
                            dim=c(5, 3, 2), 
                            dimnames=list(cars=1:5, q8=c("N","U","Y"), 
                                          sex=c("F","M"))))
library(reshape)
melt(myframe)

用于获取具有所有变量的data.frame.如果您只想将q8sex作为因素保留在data.frame中,请改用melt(myframe)[,-1].

for getting a data.frame with all variables. Should you only want to keep q8 and sex as factors in your data.frame, use melt(myframe)[,-1] instead.

有关更多信息,请参见help(melt.array).

See help(melt.array) for more information.

这篇关于在R中生成向量并将其插入堆叠的框架中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆