你好 jmp 社区,
我是 JMP 和一般分析的相对初学者,在处理没有通用结构的数据集方面已经达到了我的极限。 我不确定这样的数据实际上是如何调用的,这让我很难用语言来描述它。 基本上,例如每年都有一个列,而行不仅仅是对一个人或类似人员的单一观察,而是一个更复杂的行层次结构。 (示例文件在附件中,所以你知道我的意思)无论如何,这种结构使我几乎不可能做出有意义的报告。 是否有一种通用的方法来处理此类数据?
非常感谢你的帮助!
欢迎来到社区。
您的数据可以通过 Excel 向导轻松输入到 JMP 中,以指导您完成输入。
通常,数据的分析格式是垂直排列的,而不是水平排列的。因此,我通常会如何开始堆叠所有年度数据。
我提供了一些我放在一起的脚本,这些脚本在您提供的 2 个电子表格中读取。在这两种情况下,我都使用交互式 JMP 输入和转换数据,然后从 JMP 中获取它生成的用于执行实际工作的脚本,并将它们保存到下面的脚本中。
对于 Verkehrsunfalle 数据


Names Default To Here( 1 );
dt = Open(
"path to your data",
Worksheets( "46241-0022" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 4 ),
Data Starts on Row( 5 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Fill in rows where repeating values have been deleted
For( i = 1, i <= 2, i++,
For( k = 1, k <= N Rows( dt ), k++,
If( Column( i )[k] != "",
hold = Column( i )[k]
);
Column( i )[k] = hold;
)
);
// Get rid of dashes being used as an indicator of blank data
// Also, change columns to numeric after the dashes are changed
for(i=4,i<=ncols(dt),i++,
try(as column(i)[dt<<GET rows="" where=""></GET>
对于欧盟统计局数据
再次使用 Excel 向导输入 JMP,然后堆叠数据


names default to here(1);
dt = // Import Excel file: lebTHI_EurostatTable.xls
// → Data Table( "Sheet0" )
Open(
"path to your data",
Worksheets( "Sheet0" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 3 ),
Data Starts on Row( 4 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// delete rows where footnotes were input
dt << select where(:"1997"n =="");
dt << delete rows;
// Stack all of the year data
dtStack = dt << Stack(
columns(
:"1990"n, :"1991"n, :"1992"n, :"1993"n, :"1994"n, :"1995"n, :"1996"n,
:"1997"n, :"1998"n, :"1999"n, :"2000"n, :"2001"n, :"2002"n, :"2003"n,
:"2004"n, :"2005"n, :"2006"n, :"2007"n, :"2008"n, :"2009"n, :"2010"n,
:"2011"n, :"2012"n, :"2013"n, :"2014"n, :"2015"n
),
Source Label Column( "Jahr" ),
Stacked Data Column( "Arbeitslosenquote" ),
"Non-stacked columns"n( Keep( :geo\time ) ),
Output Table( "Stacked Unemployment " )
);
// Change : to blanks
dtStack:Arbeitslosenquote[dtStack << get rows where(:Arbeitslosenquote == ":")] = "";
// Change Arbeitslosenquote to numeric, continuous
dtStack:Arbeitslosenquote << datatype(numeric)<<MODELINGTYPE></MODELINGTYPE>
好的! 感谢您展示了一种将人性化表示形式转换为计算机友好格式的通用方法。 特别喜欢
Entfernen Sie die Kategorie "Insgesamt"
在第一个结束时。 也许有一个公式可以在某个时候计算这些总数。
您好,非常感谢您抽出时间回答这么好的问题! 当我有空的时候,我会尽快自己尝试,按照你的指南,让你知道它是如何进行的。 