为了账号安全,请及时绑定邮箱和手机立即绑定

VBA和R的对决

标签:
Java

今天有个小伙伴在问怎么把将下图的数据存储形式

webp

image.png


改为下面这种

webp


好方便做数据透视
我首先想到的是R语言的reshape2包,这个我之前介绍过,不熟的小伙伴可以点利用reshape2包进行数据逆透视和数据透视
但是我这个朋友对R不是熟,所以我就用VBA做了一下,其实逻辑很简单,大家看看代码就清楚了。VBA有时候真的很牛逼


Sub clean_data()
    max_row = Worksheets("数据源").Range("a" & Rows.Count).End(xlUp).Row
    Worksheets.Add.Name = "结果"
    Worksheets("结果").Range("a1") = "用户"
    Worksheets("结果").Range("b1") = "app"
    h = 1   '这个变量至关重要
    For i = 2 To max_row
        max_column = Worksheets("数据源").Range("a" & i).End(xlToRight).Column
        For j = 2 To max_column
        h = h + 1
           Worksheets("结果").Range("a" & h) = Worksheets("数据源").Cells(i, 1).Value
           Worksheets("结果").Range("b" & h) = Worksheets("数据源").Cells(i, j)
        Next j
    Next i
End Sub

ok,VBA介绍完了,下面来看看R中的神(肾)包(宝)reshape2怎么去实现

Sys.setlocale(category = "LC_ALL", locale = "zh_cn.utf-8") #保证Mac系统中R语言中中文能够正常显示library(readxl)
data <- read_excel("/Volumes/XIAKE/副本app列表.xlsm")
head(data)

library(reshape2)
data2 <- melt(data,id.vars = "hx_id",na.rm = TRUE)
data_order <- data2[order(data2$hx_id),]

有兴趣的同学可以下载数据源试试



作者:鸣人吃土豆
链接:https://www.jianshu.com/p/9b1fab3e1332


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
228
获赞与收藏
996

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消