在源数据帧创建,每行的副本的变量数A数据帧
问题描述:
说我有一个数据帧在源数据帧创建,每行的副本的变量数A数据帧
source <- data.frame(ID=c(1,2), COUNT=c(3,4))
,看起来像这样:
ID COUNT
1 1 3
2 2 4
我想改变这个到具有COUNT纪录每一个ID,一个新的独特的ITEMID一个数据帧,这样
ITEMID SOURCEID
1 1 1
2 2 1
3 3 1
4 4 2
5 5 2
6 6 2
7 7 2
我可以用一个for循环做,但我想学习如何做到这一点与应用型功能
答
无需apply
功能:
orig <- data.frame(ID=1:2,COUNT=3:4)
new <- data.frame(ITEMID=seq(sum(orig$COUNT)), SOURCEID=rep(orig$ID,times=orig$COUNT))
new
ITEMID SOURCEID
1 1 1
2 2 1
3 3 1
4 4 2
5 5 2
6 6 2
7 7 2
答
如何:
do.call(rbind, lapply(split(source, source$ID), with, df, {
itemid <- seq(count)
sourceid <- id
data.frame(itemid, sourceid)
})
+1,比我好!我需要更多的睡眠.... – 2012-02-13 11:51:31