如何在Statsoft Statistica中基于连续变量创建分类变量
我正在用统计学中的天气数据做一些分析。其中一个变量是如何在Statsoft Statistica中基于连续变量创建分类变量,statistica,Statistica,我正在用统计学中的天气数据做一些分析。其中一个变量是风向,它是一个连续变量,范围从0到360。现在我想创建一个新列,将winddirection划分为8个类别 0-45: 'E' 45-90: 'NE' 90-135: 'N' 我需要使用自定义公式来生成这个新变量Case语句将是理想的,但在Statistica中这似乎不是一个选项。If..else也可以,但Statistica有iif而不是纯If。正确的方法是什么?IDK您对宏的熟悉程度如何,但是下面的SVB宏可以重新编码列。您必须提供源列和
风向
,它是一个连续变量,范围从0到360。现在我想创建一个新列,将winddirection
划分为8个类别
0-45: 'E'
45-90: 'NE'
90-135: 'N'
我需要使用自定义公式来生成这个新变量
Case
语句将是理想的,但在Statistica
中这似乎不是一个选项。If..else也可以,但Statistica有iif
而不是纯If
。正确的方法是什么?IDK您对宏的熟悉程度如何,但是下面的SVB宏可以重新编码列。您必须提供源列和目标列。此宏假定震源的值为0-359度
'#Language "WWB-COM"
Option Base 1
Option Explicit
Sub Main
Dim ss As Spreadsheet
Set ss = ActiveSpreadsheet
Dim SourceCol As Long
Dim DestCol As Long
SourceCol = 1
DestCol = 3
Dim MDValue
MDValue = Option.Spreadsheet.DefaultMissingDataValue
Dim i
For i = 1 To ss.NumberOfCases
Dim TheValue, NewValue
TheValue = ss.Value(i, SourceCol)
NewValue = MDValue
If TheValue < 22.5 Then
NewValue = "E"
ElseIf TheValue < 67.5 Then
NewValue = "NE"
ElseIf TheValue < 112.5 Then
NewValue = "N"
ElseIf TheValue < 157.5 Then
NewValue = "NW"
ElseIf TheValue < 202.5 Then
NewValue = "W"
ElseIf TheValue < 247.5 Then
NewValue = "SW"
ElseIf TheValue < 292.5 Then
NewValue = "S"
ElseIf TheValue < 337.5 Then
NewValue = "SE"
Else
NewValue = "E"
End If
ss.Value(i, DestCol) = NewValue
Next
End Sub
”#语言“WWB-COM”
选项基数1
选项显式
副总管
将ss设置为电子表格
设置ss=ActiveSpreadsheet
长得一样暗
暗淡如长
SourceCol=1
DestCol=3
暗淡MDValue
MDValue=Option.Spreadsheet.DefaultMissingDataValue
昏暗的我
对于i=1至ss.NumberOfCases
使值变暗,新值
TheValue=ss.Value(i,SourceCol)
NewValue=MDValue
如果该值小于22.5,则
NewValue=“E”
否则,如果值<67.5
NewValue=“NE”
否则,如果值<112.5
NewValue=“N”
否则,如果值小于157.5,则
NewValue=“NW”
否则,如果值<202.5
NewValue=“W”
否则,如果该值小于247.5
NewValue=“SW”
否则,如果该值小于292.5
NewValue=“S”
否则,如果该值小于337.5
NewValue=“SE”
其他的
NewValue=“E”
如果结束
ss.值(i,DestCol)=新值
下一个
端接头
您还可以使用“重新编码”对话框,该对话框有256个条件可用于重新编码变量。