微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 reshape 将数据从宽数据重构为具有多列的长数据时出错

如何解决使用 reshape 将数据从宽数据重构为具有多列的长数据时出错

我正在尝试使用 reshape 从宽格式到长格式重构我的数据,但我一直收到错误消息。下面我写了我已经尝试过的代码和我得到的错误信息。

当前数据结构

patientid  Adh_catv1    Adh_catv2    Adh_catv3    Adh_threeitemsv1   Adh_threeitemsv2  Adh_threeitemsv3
70FD       optimal      optimal      optimal      86                 90                100
70LJ       suboptimal   suboptimal   optimal      40                 50                70
70ML       optimal      suboptimal   suboptimal   89                 55                50        

想要的结构

patientid  Visits    Adherence    Adherence_threeitem
70FD       visit1   optimal        86
70FD       visit2   optimal        90
70FD       visit3   optimal        100
70LJ       visit1   suboptimal     40
70LJ       visit2   suboptimal     50
70LJ       visit3   optimal        70
70ML       visit1   optimal        89
70ML       visit2   suboptimal     55
70ML       visit3   suboptimal     50

这是我迄今为止尝试过的


    reshape(df,direction = 'long',varying = c ('adh_catv1:Adh_threeitemsv3'),timevar = 'Visits',times = c ("visit1","visit2","visit3"),v.names = c ('adherence','adherence_threeitem),idvar = 'patientid')

Error in reshape(df,direction = "long",varying = c("adh_catv1:Adh_threeitemsv3"),: 
  length of 'varying' must be the product of length of 'v.names' and length of 'times'

请指出我在上面的代码中做错了什么,或者建议使用其他函数的替代更简单的选项。

解决方法

这里最基本的代码是:

reshape(df,-1,dir="long",sep="")

    patientid time   Adh_catv Adh_threeitemsv id
1.1      70FD    1    optimal              86  1
2.1      70LJ    1 suboptimal              40  2
3.1      70ML    1    optimal              89  3
1.2      70FD    2    optimal              90  1
2.2      70LJ    2 suboptimal              50  2
3.2      70ML    2 suboptimal              55  3
1.3      70FD    3    optimal             100  1
2.3      70LJ    3    optimal              70  2
3.3      70ML    3 suboptimal              50  3

您可以根据需要添加其他变量:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。