首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中生成一个向量,并将其插入堆叠的帧中

在R中生成一个向量,并将其插入堆叠的帧中
EN

Stack Overflow用户
提问于 2011-05-02 16:54:22
回答 1查看 3.5K关注 0票数 1

我想堆叠一个框架,但我想我没有使用正确的方法……

代码语言:javascript
运行
复制
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
      ....

你能帮我做得更好吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-02 18:56:55

要将表转换为data.frame,应使用基本函数as.data.frame.table

然而,下面是我会怎么做:

代码语言:javascript
运行
复制
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]

有关详细信息,请参阅help(melt.array)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5855225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档