**我得到了一个这样的数据集:(数据集的名称称为“ 2010.csv”)
ID year month score_1 score_2
100 2010 1 93 85
200 2010 1 94 93
100 2010 2 84 90
200 2010 2 90 90
**我想要的是这个
ID year month score_1 score_2 year month score_1 score_2
100 2010 1 93 85 2010 2 84 90
200 2010 1 94 93 2010 2 90 90
有人可以帮我在R中做到吗?谢谢!
答案 0 :(得分:0)
使用末尾“注释”中可重复显示的数据,首先对数据进行整形。 reshape
命令将重复ID
和year
列,因此删除除第一个实例外的所有实例。然后清理名称。如果名称与问题中的名称不完全相同,并且ID和Year列重复,则可以使用第一行。不使用任何软件包。
r <- reshape(DF, dir = "wide", idvar = 1:2, timevar = 3)
r <- r[-tail(grep("year|ID", names(r)), -2)]
names(r) <- sub("\\..*", "", names(r))
r
提供此data.frame:
ID year month score_1 score_2 month score_1 score_2
1 100 2010 1 93 85 2 84 90
2 200 2010 1 94 93 2 90 90
Lines <- "
ID year month score_1 score_2
100 2010 1 93 85
200 2010 1 94 93
100 2010 2 84 90
200 2010 2 90 90"
DF <- read.table(text = Lines, header = TRUE)