Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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_Dataframe - Fatal编程技术网

R 使用分类变量多次重复行数据

R 使用分类变量多次重复行数据,r,dataframe,R,Dataframe,我有一个如下所示的数据帧: DATE SURVEY SPECIES COUNT 07/12/16 13 Paka 1 07/12/16 14 Paka 1 07/12/16 15 Grouper 2 07/12/16 16 Grouper 3 07/12/16 18 Grouper 1 07/12/16 20 Lehi 3 其中,“计数”是指每次给定调查中观察到的个体数量。我想重新调整数据,使每个人都有一行(记录):例如

我有一个如下所示的数据帧:

DATE    SURVEY  SPECIES COUNT
07/12/16    13  Paka    1
07/12/16    14  Paka    1
07/12/16    15  Grouper 2
07/12/16    16  Grouper 3
07/12/16    18  Grouper 1
07/12/16    20  Lehi    3
其中,“计数”是指每次给定调查中观察到的个体数量。我想重新调整数据,使每个人都有一行(记录):例如:

DATE    SURVEY  SPECIES
07/12/16    13  Paka
07/12/16    14  Paka
07/12/16    15  Grouper
07/12/16    15  Grouper
07/12/16    16  Grouper
07/12/16    16  Grouper
07/12/16    16  Grouper
07/12/16    18  Grouper
07/12/16    20  Lehi
07/12/16    20  Lehi
07/12/16    20  Lehi
每次调查的数据都会根据需要重复多次。我曾考虑过使用melt()或summary()函数,但由于COUNT变量的范围在1到10之间,所以我被卡住了


谢谢

假设您的原始数据框是
dat
,您可以执行以下操作以获得所需的数据框
新数据:

new_dat <- dat[rep.int(1:nrow(dat), dat$COUNT), -4]
rownames(new_dat) <- 1:nrow(new_dat)

这里是另一个带有
expandRows

library(splitstackshape)
`row.names<-`(expandRows(df1, "COUNT"), NULL)
#      DATE SURVEY SPECIES
#1  07/12/16     13    Paka
#2  07/12/16     14    Paka
#3  07/12/16     15 Grouper
#4  07/12/16     15 Grouper
#5  07/12/16     16 Grouper
#6  07/12/16     16 Grouper
#7  07/12/16     16 Grouper
#8  07/12/16     18 Grouper
#9  07/12/16     20    Lehi
#10 07/12/16     20    Lehi
#11 07/12/16     20    Lehi
库(splitstackshape)

`row.工作得很有魅力!谢谢:)@ZheyuanLi任务是使其成为一行,但基本上,
expandRows
只是一个包装器,它与代码中的功能相同。然而,人们将包装作为一种独特的解决方案发布,并获得更多的分数。这方面的例子是
library(splitstackshape)
`row.names<-`(expandRows(df1, "COUNT"), NULL)
#      DATE SURVEY SPECIES
#1  07/12/16     13    Paka
#2  07/12/16     14    Paka
#3  07/12/16     15 Grouper
#4  07/12/16     15 Grouper
#5  07/12/16     16 Grouper
#6  07/12/16     16 Grouper
#7  07/12/16     16 Grouper
#8  07/12/16     18 Grouper
#9  07/12/16     20    Lehi
#10 07/12/16     20    Lehi
#11 07/12/16     20    Lehi