Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:按组按不同变量集的值重复向量值_R_List_Repeat - Fatal编程技术网

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 ...