楼主: Diana_Pluto
673 3

[问答] R语言求助:怎么把宽数据分段整理为长数据 [推广有奖]

  • 0关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
70 点
帖子
2
精华
0
在线时间
11 小时
注册时间
2020-3-24
最后登录
2023-1-4

楼主
Diana_Pluto 发表于 2022-9-25 17:50:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如图举个例子,我想保持ID和VISIT不动,但是把CLASS、MEDICINE、DAY改成长数据的样子,比如ID为7的样本就变成
ID  VISIT   CLASS                MEDICINE     DAY
7     6M     Beta Blockers       lopressor       2
7     6M     Ace Inhibitor        lisinopril        2
......
无标题.png

melt好像只能处理一列数据,像这样应该怎么做呢?有没有好心人解答
二维码

扫码加我 拉你入群

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

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

关键词:R语言 长数据 宽数据 Medicine Visit R语言 宽数据 长数据

沙发
无用户名 学生认证  发表于 2022-9-25 22:46:31 来自手机
Diana_Pluto 发表于 2022-9-25 17:50
如图举个例子,我想保持ID和VISIT不动,但是把CLASS、MEDICINE、DAY改成长数据的样子,比如ID为7的样本就变 ...
melt也可以,measure.vars = c(变量名,,,)即可;或者也可用gather函数
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

藤椅
abelus 发表于 2022-9-26 10:27:13
笨办法
map(seq(3, ncol(dat)-2, by = 3),
       function(x) {
           tmp <- dat[ c(1:2, x:(2+x))]
           names(tmp) <- c('id', 'visit', 'med', 'day', 'class')
           tmp}) %>% reduce(rbind)

板凳
abelus 发表于 2022-9-26 10:32:17
  1. map(seq(3, ncol(dat)-2),
  2.     function(x){
  3.       tmp <- dat[c(1:2, x:(x+2))]
  4.       names(tmp) <- c('id', 'visit', 'med', 'class', 'day')
  5.       tmp
  6.     }) %>% reduce(rbind)
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 05:37