基于变量但略有不同的转置/重塑

时间:2014-07-30 21:53:39

标签: python r sas reshape transpose

我有一张表,我希望根据变量转置。虽然我知道如何以类似的方式基于一个变量转置,但是我不知道这种风格。是否可以在SAS / Python / R中完成。

我的输入表

Input

我想要的输出看起来像这个

Output

3 个答案:

答案 0 :(得分: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 :(得分: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 :(得分: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;