我正在适应一项新工作,我与同事分享的大部分工作都是通过MS Excel进行的.我经常使用数据透视表,因此需要"堆叠"数据,恰好是R melt()中的reshape(reshape2)包中的函数输出,我已经依赖它了.
任何人都可以让我开始使用VBA宏来完成此任务,还是已经存在?
宏的轮廓将是:
换句话说,输出看起来与在R中简单地执行这两行的输出完全相同:
require(reshape)
melt(your.unstacked.dataframe, id.vars = 1:4)
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
# unstacked data
> df1
Year Month Country Sport No_wins No_losses High_score Total_games
2 2010 5 USA Soccer 4 3 5 9
3 2010 6 USA Soccer 5 3 4 8
4 2010 5 CAN Soccer 2 9 7 11
5 2010 6 CAN Soccer 4 8 4 13
6 2009 5 USA Soccer 8 1 4 9
7 2009 6 …Run Code Online (Sandbox Code Playgroud) 我试图在一列中找到重复值,并将第二列的值合并为一行.我还想在第三列中对值进行求和.
例如:
A B C D
h 4 w 3
h 4 u 5
h 4 g 7
h 4 f 4
k 9 t 6
k 9 o 6
k 9 p 9
k 9 j 1
Run Code Online (Sandbox Code Playgroud)
会成为
A B C D
k 9 t;o;p;j 22
h 4 w;u;g;f 19
Run Code Online (Sandbox Code Playgroud)
我在第一部分使用的代码是
Sub mergeCategoryValues()
Dim lngRow As Long
With ActiveSheet
lngRow = .Cells(65536, 1).End(xlUp).Row
.Cells(1).CurrentRegion.Sort key1:=.Cells(1), Header:=xlYes
Do
If .Cells(lngRow, 9) = .Cells(lngRow + 1, 9) Then
.Cells(lngRow, 11) = …Run Code Online (Sandbox Code Playgroud)