楼主: samuelbiz1
4114 8

[学习分享] R语言怎么把多列转换成行 [推广有奖]

  • 0关注
  • 0粉丝

初中生

4%

还不是VIP/贵宾

-

威望
0
论坛币
444 个
通用积分
0.3000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
262 点
帖子
6
精华
0
在线时间
13 小时
注册时间
2016-12-15
最后登录
2024-9-24

楼主
samuelbiz1 发表于 2018-11-18 14:14:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问如何把下表:
saving     purpose
a1            b1
a2            b2
a3            b3

转换成:
a1  a2  a3   b1  b2  b3
1    0    0     1   0     0
0    1    0     0   1     0
0    0    1     0   0     1

spread 转了一次saving,prupose就不能转了,谢谢
二维码

扫码加我 拉你入群

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

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

关键词:R语言 Purpose Saving spread pose spread 宽表

沙发
屋檐滴语 发表于 2018-11-18 14:20:33
原表里没有1,0这些数啊?

藤椅
samuelbiz1 发表于 2018-11-18 14:23:22
屋檐滴语 发表于 2018-11-18 14:20
原表里没有1,0这些数啊?
没有,加了一列col,全部是1
aa <- spread(data=bankdata,key=saving,value = col,fill = 0)
aa <- spread(data=aa,key=purpose,value = col,fill = 0)   这里就出错了

板凳
hongqp 发表于 2018-11-18 14:59:03
spread是什么函数?

报纸
samuelbiz1 发表于 2018-11-18 15:05:49
hongqp 发表于 2018-11-18 14:59
spread是什么函数?
变宽表

地板
wang052235 发表于 2018-11-18 16:54:40 来自手机
用t()不就行吗

7
wang052235 发表于 2018-11-18 16:57:07 来自手机
应该使用reshape或者reshape2
长宽型数据转换吧

8
屋檐滴语 发表于 2018-11-18 20:25:46
  1. saving = c("a1","a2", "a3")
  2. purpose = c("b1","b2", "b3")
  3. df = data.frame(saving, purpose)

  4. library(tidyverse)
  5. df %>%
  6.   mutate(aux1 = 1, aux2 = 1) %>%
  7.   spread(saving, aux1) %>%
  8.   spread(purpose, aux2) ->df2
  9. df2[is.na(df2)]=0
  10. df2
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

9
samuelbiz1 发表于 2018-11-18 21:34:19
屋檐滴语 发表于 2018-11-18 20:25
非常感谢

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

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