基于变量的转置/重塑但略有不同
我有一个表格,我想根据一些变量来转置它。虽然我知道怎么根据一个变量来转置,但用这种方式做我就不太清楚了。请问在SAS、Python或R中可以做到吗?
我的输入表格如下
我想要的输出看起来是这样的
3 个回答
1
PROC TABULATE
是一种非常简单的方法来做到这一点...
http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000146759.htm
大概是这样的...
proc tabulate data=mydata ; class APPLICATION MONTH_YEAR ; var TOTAL_: ; table APPLICATION, MONTH_YEAR ; run ;
2
这是一个R语言的解决方案
如果你的数据看起来像这样
dat <- data.frame(App = c(2,3), time = c("Sept", "Jan"),
Total = c(2,1777),
total_one = c(1, 1521),
total_two = c(1, 256))
dat
# App time Total total_one total_two
# 1 2 Sept 2 1 1
# 2 3 Jan 1777 1521 256
你可以把它reshape
(重塑)成wide
(宽格式)
reshape(dat, idvar = "App" , timevar="time" , direction="wide")
# App Total.Sept total_one.Sept total_two.Sept Total.Jan total_one.Jan total_two.Jan
# 1 2 2 1 1 NA NA NA
# 2 3 NA NA NA 1777 1521 256
想了解更多细节,可以查看?reshape
1
你可以很简单地用 proc report
来做到这一点。可以从这段代码开始,然后根据你的需求进行样式上的修改。
proc report data=have nowd;
columns application month_year,(total_number_applications tota_applications_one total_applications_two);
define application/group;
define month_year/across;
run;