3148 4

[问答] R中 识别重复测量数据,并进行转置 [推广有奖]

  • 0关注
  • 1粉丝

大专生

16%

还不是VIP/贵宾

-

威望
0
论坛币
9 个
通用积分
34.1893
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
144 点
帖子
12
精华
0
在线时间
71 小时
注册时间
2019-6-5
最后登录
2022-6-12

楼主
风中有朵雨做的云 发表于 2019-7-21 16:01:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

各位老师好,小弟在处理数据的时候遇到一些问题,希望能得到大家的解答:
问题主要是关于:识别出重复测量数据(严格讲,不属于重复数据,因为一个人可能同时患有多重疾病),然后将重复的数据进行转置:原始数据为图1,希望达到的效果如图2(图中的des1,des2,des3希望能自动按照最多的重复次数而自动生成);

#构建数据框#
c1<-c(1:7)
c2<-c("30040","30040","30041","30041","30041","30042","30043")
c3<-c("糖尿病","感染","高血压","糖尿病","感染","高血压","糖尿病")
a=data.frame(c1,c2,c3)
names(a)<-c("num","id","des")

听说stata很容易能实现这个效果,但是由于其他原因无法使用stata进行处理,希望有老师能帮忙用R解答一下,非常感谢~

1.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:重复测量 处理数据 原始数据 自动生成 数据框

微信截图_20190721155539.png (12.39 KB)

微信截图_20190721155539.png

沙发
ekeen 发表于 2019-7-21 16:09:37
reshape包了解下
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
ekeen 发表于 2019-7-21 16:32:22
library(tidyr)
a %>% spread(num,des)
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

板凳
风中有朵雨做的云 发表于 2019-7-21 17:08:09
ekeen 发表于 2019-7-21 16:32
library(tidyr)
a %>% spread(num,des)
感谢您的解答,我把数据重新加了一列cat,这样后面更好理解和处理,我使用reshape包中的dcast(a,num+id~cat),能初步达到效果,同时使用您的a %>% spread(cat,des),两者均可达到初步的效果;但是出来的结果中,同一个id号的仍然分为了好几行,未能合并到一行,这个又需要怎么处理呢?我在其他地方看到的使用dcast的命令后(https://www.cnblogs.com/ljhdo/p/4954351.html),同一id的就全部合并到一行了,不知道为何我的不行,谢谢~
#数据框更新#
c1<-c(1:7)
c2<-c("30040","30040","30041","30041","30041","30042","30043")
c3<-c("des","des1","des2","des","des1","des2","des")
c4<-c("糖尿病","感染","高血压","糖尿病","感染","高血压","糖尿病")
a=data.frame(c1,c2,c3,c4)
names(a)<-c("num","id","cat","des")
#dcast(a,num+id~cat)后的结果# 4.png

已有 1 人评分论坛币 收起 理由
cheetahfly + 10 解决后详细分享

总评分: 论坛币 + 10   查看全部评分

报纸
风中有朵雨做的云 发表于 2019-7-21 17:11:42
感谢您的解答,我知道原因了,dcast(a,id~cat),就呈现出了想要的结果~感谢~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-27 06:34