楼主: 909646372
992 6

[问答] 怎么将原来数据框的形式,转变为下面excel这种格式的数据框 [推广有奖]

  • 0关注
  • 0粉丝

初中生

33%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
18.1975
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
63 点
帖子
4
精华
0
在线时间
28 小时
注册时间
2021-1-25
最后登录
2024-7-23

楼主
909646372 发表于 2021-8-1 16:16:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
ab5ea62da63e95341c623e1d368d63b.png
想问一下怎么将这个数字框转化成下面excel这个表格的排列形式,而且还会根据每个县不同邻县的数量然后自动排列生成邻县1 2 3 4。 小白新手!谢谢! d4d4115c3b4b67b3dc835daccb35847.png

二维码

扫码加我 拉你入群

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

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

关键词:EXCEL exce xcel 数据框 cel

95cec51cec0791a41450942db94b8d0.png (6.9 KB)

95cec51cec0791a41450942db94b8d0.png

10d25ad68167cc6bd6ae145b9e0e968.png (20.7 KB)

10d25ad68167cc6bd6ae145b9e0e968.png

沙发
zerofung 学生认证  发表于 2021-8-1 21:35:47
提供几个关键函数,group_by(县,县代码),mutate(xxx = paste0(邻县,collapse = T)),separate_rows()

藤椅
909646372 发表于 2021-8-2 08:08:41
有会的嘛

板凳
wangkang0831 发表于 2021-8-2 09:15:17 来自手机
909646372 发表于 2021-8-1 16:16
想问一下怎么将这个数字框转化成下面excel这个表格的排列形式,而且还会根据每个县不同邻县的数量然后自动 ...
这种数据预处理最烦躁了,但MATLAB解决一切牛鬼蛇神,可能就是把问题会变得复杂很多...

报纸
小朝 发表于 2021-8-14 21:53:27
有笨方法实现,不知道是否有适合的函数
  1. library(dplyr)
  2. library(tidyr)

  3. # 样例   kf代表某地,k1代表邻县,k2代表邻市
  4. d1 <- data.frame(kf=c('A','A','A','B','B'),k1=paste0('lx',1:5),k2=paste0('ls',2:6))

  5. # 添加辅助列
  6. d2 <- d1 %>% group_by(kf) %>% mutate(rk=row_number()) %>% mutate(rk_key=paste0('key',rk))

  7. # 查看最多临县数
  8. kn <- unique(d2$rk) %>% length()


  9. # 打横 得到邻县
  10. lx.data <- d2 %>% spread(key = rk_key,value = k1) %>% group_by(kf) %>%
  11.   summarise_at(vars(key1:paste0('key',kn)), max,na.rm=TRUE)

  12. # 打横 得到市区
  13. ls.data <- d2 %>% spread(key = rk_key,value = k2) %>% group_by(kf) %>%
  14.   summarise_at(vars(key1:paste0('key',kn)), max,na.rm=TRUE)

  15. # 合并最后结果
  16. left_join(lx.data,lx.data,by='kf')
复制代码

地板
小朝 发表于 2021-8-14 21:54:19
library(dplyr)
library(tidyr)
# 样例   kf代表某地,k1代表邻县,k2代表邻市
d1 <- data.frame(kf=c('A','A','A','B','B'),k1=paste0('lx',1:5),k2=paste0('ls',2:6))
# 添加辅助列
d2 <- d1 %>% group_by(kf) %>% mutate(rk=row_number()) %>% mutate(rk_key=paste0('key',rk))
# 查看最多临县数
kn <- unique(d2$rk) %>% length()
# 打横 得到邻县
lx.data <- d2 %>% spread(key = rk_key,value = k1) %>% group_by(kf) %>%
  summarise_at(vars(key1:paste0('key',kn)), max,na.rm=TRUE)
# 打横 得到市区
ls.data <- d2 %>% spread(key = rk_key,value = k2) %>% group_by(kf) %>%
  summarise_at(vars(key1:paste0('key',kn)), max,na.rm=TRUE)
# 合并最后结果
left_join(lx.data,lx.data,by='kf')

7
小朝 发表于 2021-8-14 22:01:15
library(dplyr)
library(tidyr)

# 样例   kf代表某地,k1代表邻县,k2代表邻市
d1 <- data.frame(kf=c('A','A','A','B','B'),k1=paste0('lx',1:5),k2=paste0('ls',2:6))

# 添加辅助列
d2 <- d1 %>% group_by(kf) %>% mutate(rk=row_number()) %>% mutate(rk_key=paste0('key',rk))

# 查看最多临县数
kn <- unique(d2$rk) %>% length()


# 打横 得到邻县
lx.data <- d2 %>% spread(key = rk_key,value = k1) %>% group_by(kf) %>%
  summarise_at(vars(key1:paste0('key',kn)), max,na.rm=TRUE)

# 打横 得到市区
ls.data <- d2 %>% spread(key = rk_key,value = k2) %>% group_by(kf) %>%
  summarise_at(vars(key1:paste0('key',kn)), max,na.rm=TRUE)

# 合并最后结果
left_join(lx.data,ls.data,by='kf')

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

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