【发布时间】:2012-09-08 08:32:49
【问题描述】:
我正在为 reshape 包苦苦挣扎,寻找一种“投射”数据框但在“value.var”中有两个(或更多)值的方法。
这是我想要实现的示例。
df <- data.frame( StudentID = c("x1", "x10", "x2",
"x3", "x4", "x5", "x6", "x7", "x8", "x9"),
StudentGender = c('F', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'M', 'M'),
ExamenYear = c('2007','2007','2007','2008','2008','2008','2008','2009','2009','2009'),
Exam = c('algebra', 'stats', 'bio', 'algebra', 'algebra', 'stats', 'stats', 'algebra', 'bio', 'bio'),
participated = c('no','yes','yes','yes','no','yes','yes','yes','yes','yes'),
passed = c('no','yes','yes','yes','no','yes','yes','yes','no','yes'),
stringsAsFactors = FALSE)
从 df 我可以创建以下数据框:
tx <- ddply(df, c('ExamenYear','StudentGender'), summarize,
participated = sum(participated == "yes"),
passed = sum(passed == "yes"))
在reshape逻辑中,我有两个“值变量”参与并通过了
我正在寻找将以下信息组合在一个数据框中的方法:
dcast(tx, formula = ExamenYear ~ StudentGender, value.var = 'participated')
dcast(tx, formula = ExamenYear ~ StudentGender, value.var = 'passed')
我试图创建的茶几看起来像这样
tempTab1 <- dcast(tx, formula = ExamenYear ~ StudentGender, value.var = 'participated')
tempTab2 <- dcast(tx, formula = ExamenYear ~ StudentGender, value.var = 'passed')
as.data.frame(cbind(ExamenYear = tempTab1[,1],
Female_Participated = tempTab1[,2],
Female_Passed = tempTab2[,2],
Male_Participated = tempTab1[,3],
Male_Passed = tempTab2[,3]
))
是否可以在强制转换函数中有两个“值变量”?
【问题讨论】: