首页 > 解决方案 > 如何将多个变量放在列内作为r中的一个因素

问题描述

制作数据结构时遇到问题。

在此处输入图像描述

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之间的关系,所以我想把它转换成这样:

在此处输入图像描述

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)

有什么代码我可以做到吗?

标签: rdatabasestructure

解决方案


你需要tidyverse

library(tidyverse)
    new.df%>%
     gather(lv,number.of.people)
   lv number.of.people
1 lv1                5
2 lv1                2
3 lv1                8
4 lv2                9
5 lv2                3
6 lv2                6
7 lv3                5
8 lv3                0
9 lv3                2

推荐阅读