R:按组按不同变量集的值重复向量值
我试图将每个薪酬级别的公司级员工数量数据转换为个人级数据,将薪酬分配给每个公司薪酬级别内的每个员工数量。 在这样做的过程中,我想通过每个薪酬水平中的员工人数来重复每个薪酬水平 我当前的数据如下所示:R:按组按不同变量集的值重复向量值,r,list,repeat,R,List,Repeat,我试图将每个薪酬级别的公司级员工数量数据转换为个人级数据,将薪酬分配给每个公司薪酬级别内的每个员工数量。 在这样做的过程中,我想通过每个薪酬水平中的员工人数来重复每个薪酬水平 我当前的数据如下所示: serno pay1 pay2 pay3 pay4 pay5 pay6 10001 0 1 0 1 1 8 10002 0 0 14 317 644 1610 10003 5 19 103 204 93 27 10004 0
serno pay1 pay2 pay3 pay4 pay5 pay6
10001 0 1 0 1 1 8
10002 0 0 14 317 644 1610
10003 5 19 103 204 93 27
10004 0 5 49 124 403 927
现在我想:
serno Pay
10001 pay2
10001 pay4
10001 pay6
.
.
10001 pay8
10002 pay3
10002 pay3
.
.
10002 pay6
.
.
我使用了重复和时间代码。虽然这有助于将整个公司级别的数据转化为个人级别的数据,因为我创建了一个列表,该列表等于公司名称乘以总员工数,但它不适用于重复每个工作场所的工资级别乘以每个工资级别的员工数
我已创建了每个工作场所所有员工的列表:
serno <- rep(VOI_MQ_2011$serno, times = VOI_MQ_2011$employees_total, by=list(VOI_MQ_2011$serno))
serno首先创建数据:
dta <- read.table(text="serno pay1 pay2 pay3 pay4 pay5 pay6
10001 0 1 0 1 1 8
10002 0 0 14 317 644 1610
10003 5 19 103 204 93 27
10004 0 5 49 124 403 927", header=TRUE)
dta首先创建数据:
dta <- read.table(text="serno pay1 pay2 pay3 pay4 pay5 pay6
10001 0 1 0 1 1 8
10002 0 0 14 317 644 1610
10003 5 19 103 204 93 27
10004 0 5 49 124 403 927", header=TRUE)
dta
dta <- read.table(text="serno pay1 pay2 pay3 pay4 pay5 pay6
10001 0 1 0 1 1 8
10002 0 0 14 317 644 1610
10003 5 19 103 204 93 27
10004 0 5 49 124 403 927", header=TRUE)
dta.st <- stack(dta[-1])
dta.df <- data.frame(serno=dta$serno, dta.st[, 2:1])
colnames(dta.df) <- c("serno", "pay", "Freq")
dta.df2 <- dta.df[rep(rownames(dta.df), dta.df$Freq), 1:2]
dta.df2 <- dta.df2[order(dta.df2$serno, dta.df2$pay), ]
rownames(dta.df2) <- NULL
head(dta.df2)
# serno pay
# 1 10001 pay2
# 2 10001 pay4
# 3 10001 pay5
# 4 10001 pay6
# 5 10001 pay6
# 6 10001 pay6
str(dta.df3)
# 'data.frame': 4555 obs. of 2 variables:
# $ serno: int 10001 10001 10001 10001 10001 10001 10001 10001 ...
# $ pay : Factor w/ 6 levels "pay1","pay2",..: 2 4 5 6 6 6 6 6 ...