Afghanistan
34
34
56
45
我正在执行方差分析,因此我需要数据看起来像这样:
Afghanistan 34
Afghanistan 34
Afghanistan 56
Afghanistan 45
如何对所有300个变量执行此操作?我的理由是,我可以使用aov函数来运行方差分析。在这种情况下,该国家被认为是一种治疗方法,每种治疗方法都有4个观察值。任何指导将不胜感激!
答案 0 :(得分:0)
正如divibisan的评论所暗示的那样,该问题与Stack Overflow上的其他问题非常相似。您的问题在数据处理项目中相当普遍,您要完成的工作被称为“将数据从宽格式转换为长格式”。
有许多R软件包带有内置函数来完成此任务,例如reshape()或reshape2软件包的熔铸/浇铸。但是,如果您不习惯将这些功能用作“黑匣子”解决方案,则可以使用这种方法手动构建所需的数据集。
ex<-data.frame(USA=1:4, FRANCE=5:8)
ex
USA FRANCE
1 5
2 6
3 7
4 8
country<-names(ex)
country_names<-c()
vals<-c()
for (i in 1:ncol(ex)){
country_names<-c(country_names,(rep(country[i],4)))
vals<-c(vals,ex[,i])
}
transformed<-data.frame(country=country_names, value = vals)
transformed
country value
USA 1
USA 2
USA 3
USA 4
FRANCE 5
FRANCE 6
FRANCE 7
FRANCE 8