我试图将几个列假人转换成一个假人。
我现在拥有的:
HS2002 <- c(30343, 30344, 30345, 30346, 30349)
Original.rate <- c(10, 12, 10, 13, 2)
2004 <- c(0, 0, 0, 1, 0)
2005 <- c(0, 1, 0, 1, 0)
2006 <- c(1, 1, 0, 1, 0)
format1 <- data.frame(HS2002, Original.rate, `2004`, `2005`, `2006`)
我想要的是:
HS2002 <- c(30343, 30343, 30343, 30344, 30344, 30344, 30345, 30345, 30345, 30346, 30346 30346, 30349, 30349,30349)
Year <- c(2004, 2005, 2006,2004, 2005, 2006,2004, 2005, 2006,2004, 2005, 2006,2004, 2005, 2006,)
Original.rate(10, 10, 10, 12, 12, 12, 10, 10, 10, 13, 13, 13, 2, 2, 2)
Treatment <- (0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0)
format2 <- data.frame(HS2002, Year, Original.rate, Treatment)
我实际使用的数据集包含2004至2016年的数据,以及数千种不同的HS2002代码。我怀疑解决方案是一些变化expand.grid或How to convert multiple columns to individual rows in R中说明的内容,但我还没有在重塑中融入工作。
此时R还是比较新的,所以我希望我不必诉诸于循环。有任何想法吗?提前致谢。