你好,
我发现了 2015 年的一场讨论(主题为“sumif”),其中有一个对我当前任务非常有用的脚本。我在那里写下了我的问题,但我不知道参与该讨论的人是否可以看到我的问题。
我找到了这个脚本(稍作修改),它非常适合计算每行中值为“0/0”(或其他值)的列数。
dt << New Column("Sum",
Numeric, Formula(
Local({i = 0, n = N Col(Current Data Table()) - 1},
Sum(Repeat({i++ ; (Column(i)[] =="0/0")}, n))
)
)
);但是,如何编辑此脚本来计算包含“some_character”的列?
我附加了一个数据表,其中最后一列“总和”有一个公式和需要的结果数字。
我有一个大数据表,想要一个脚本来计算每行具有特定值(作为字符)的列数。
我尝试修改上面的脚本但是没有效果:
dt << New Column("Miss",
Numeric, Formula(
Local({i = 0, n = N Col(Current Data Table()) - 1},
Sum(Repeat({i++ ; (Contains(Column(i)[],"."))}, n))
)
)
);</CODE>Please, help</P><P>瓦伦蒂娜</P></LINGO-BODY><LINGO-LABS id="lingo-labs-737490" slang="en-US" mode="CREATE"><LINGO-LABEL>自动化和脚本</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-737586" slang="en-US" mode="CREATE">回复:sumif:如果列包含某些字符,则计数</LINGO-SUB><LINGO-BODY id="lingo-body-737586" slang="en-US" mode="CREATE"><P>您附加的原始数据表不是这样的,因为它有 4 列(您不能忽略 Sum 列)</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1711103084651.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="jthi_0-1711103084651.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/62510iAAF3B35AD80E493A/jthi_0-1711103084651.png" role="button" title="jthi_0-1711103084651.png" alt="jthi_0-1711103084651.png" /></span></SPAN></P>
<P>根据您的数据,如果我使用公式,我会这样做(最有可能的是,我会避免这样做,而只使用纯脚本解决方案)</P>
<PRE><CODE class=" language-jsl">Names Default To Here(1);
dt = Open("$DOWNLOADS/sum_help_data.jmp");
dt << Delete Column("Sum");
dt << New Column("Miss", Numeric, Continuous, Formula(
As Constant(
cols_of_interest = Filter Each({colname}, Current Data Table() << Get Column Names("String"),
!IsMissing(Regex(colname, "S\d"));
);
);
Local({
res = 0;
},
For Each({colname}, cols_of_interest,
res = res + (Contains(Column(colname)[], ".") > 0);
);
res;
);
));
我已将一个小数据表附加到我的帖子中。它有 3 行 3 列,并带有一个标题:
S1 S2 S3
0/0./. 0/0
./. ./. ./.
0/0 0/0 0/0
此脚本在此示例表中不起作用
列总和公式中断
在访问或评估“包含”时,第 1 行的参数类型错误,参数错误(列( i )[]),包含/***###*/(列( i )[],“。”)
公式评估错误已被忽略
很可能你的循环到达了某些非字符列。这部分很可能需要一些修改
n = N Col(Current Data Table()) - 1
如果不了解数据,很难知道应该怎么做。它可能只是对 -1 进行简单的修改,获取字符列列表或通过某种模式计算要遍历哪些列
这是我的日志:
列总和公式中断
在访问或评估“包含”时,第 421001 行的参数类型错误,参数错误(列( i )[]),包含/***###*/(列( i )[],“。”)
公式评估错误已被忽略
抱歉,我不明白你的问题。
我有一张约 500,000 行和约 3,000 列的表格。我需要计算包含点的列的总和 - 不能使用公式。
我想要一个脚本,任何可以工作的脚本。我尝试了不同的方法,但都没有用。