我在制作数据结构时遇到问题。
lv1<-c(5,2,8)
lv2<-c(9,3,6)
lv3<-c(5,0,2)
df<-data.frame(lv1,lv2,lv3)
数据中的结果是lv1、lv2和lv3下的人数。
但我想调查人数和不同等级的人之间的关系,所以我想把它转换成这样:
lv<- c('lv1','lv1','lv1','lv2','lv2','lv2','lv3','lv3','lv3')
number.of.people<-(c(5,2,8,9,3,6,5,0,2))
new.df<-data.frame(lv,number.of.people)
有什么我能做到的吗?
最佳答案
这不使用包。
long <- stack(df)
给:
> long
values ind
1 5 lv1
2 2 lv1
3 8 lv1
4 9 lv2
5 3 lv2
6 6 lv2
7 5 lv3
8 0 lv3
9 2 lv3
如果要更改名称并反转列顺序,请执行以下操作:
long <- stack(df)[2:1]
names(long) <- c("lv", "no.of.people")
关于r - 如何在列中将多个变量作为r中的因子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52837356/