首页
学习
活动
专区
圈层
工具
发布
综合排序丨最热优先丨最新优先
时间不限
「R」通过字符串创建公式
问题 你想要通过字符串创建公式 方案 通过字符串的方式来创建公式是非常有用的。 这通常用于需要将公式参数当做字符串传入函数中 最基础实用的方法就是调用函数 as.formula(): # 这将返回一个字符串 "y ~ x1 + x2" #> [1] "y ~ x1 + x2" # 这将返回一个公式 as.formula("y ~ x1 + x2") #> y ~ x1 + x2 #> <environment: 0x3361710> 下面是一个简单实例: # 存在一些变量名: measurevar <- "y" groupvars <- c("x1","x2","x3") # 创建合适的字符串: paste(measurevar, paste(groupvars, collapse =" + "), sep=" ~ ") #> [1] "y ~ x1 + x2 + x3" # 返回公式: as.formula(paste(measurevar, paste(groupvars,
王诗翔呀
2020-07-03
1.7K0
标签:
下拉框选择公式:让 ComboBox 把公式字符串写进 SpreadJS 数据模型
对开发者来说,值得看清的是ComboBox的editorValueType机制,以及公式字符串进入数据模型后由谁接管。 这里设为value,用户选中某一项后,进入单元格数据模型的就是value字段里那条以等号开头的字符串。 接下来是SpreadJS替你完成的部分:以=开头的字符串作为值写入后,会被公式引擎识别并解析成真正的公式,单元格立即重算,显示的是计算结果而不是公式文本。 需要注意的边界是:公式里引用的区域是写死在选项字符串里的,如果要适配动态变化的表格尺寸,就得在生成选项时把区域一并算好。 GC.Spread.Sheets.CellTypes.ComboBox、items、editorValueType、EditorValueType.value、getCell().cellType()、setArray、setColumnWidth、公式字符串
天马行空12138
2026-10-20
1250
标签:
利用ScriptEngineManager实现字符串公式灵活计算
在开发中我们可能会出现大量的公式计算,而这些公式可能并不确定。 比如用户今天说a=b+c 然而下次说公式不正确 应该是a=d+e 如果单纯的在代码中把这些公式写死 实现,后期修改维护工作量显然会增加好多。 下面就简单的介绍一种实现方法的思路: 我们知道js的eval()方法可以执行字符串的代码 而恰好jdk6增加了对脚本语言的支持 我们可以利用这个特性对计算实现简单化的处理  下面举个例子 例如有个公式               Invocable inv = (Invocable) engine; //2             result=inv.invokeFunction("test");  //2   执行字符串             System.out.println("错误");             e.printStackTrace();         }      }      // 把一个字符串的第一个字母大写
动力节点Java培训
2019-01-23
2.3K0
标签:
Excel公式练习48: 比较字符串中的字符
本次的练习是:在单元格A2中给定一个字符串值,仅由大写字母组成且字符长度至少为2。在单元格B2中输入公式:如果A2中字符串的各个字符按字母升序排列(从左到右),则返回TRUE;否则返回FALSE。 公式 在单元格B2中的公式为: =AND(GESTEP(MMULT(CODE(MID(A2,ROW(INDEX(A:A,1):INDEX(A:A,LEN(A2)-1))+{0,1},1)),{-1;1} 公式解析 首先,让我们看一下公式中的用于生成要传递给MID函数的参数的数组的结构: ROW(INDEX(A:A,1):INDEX(A:A,LEN(A2)-1)) 该构造与下面的标准结构返回相同的数组: 如果单元格A2中的字符串为“AABBCCCC”,很显然有8个字符,可以得到: ROW(INDEX(A:A,1):INDEX(A:A,7)) 转换为: ROW(A1:A7) 得到: {1;2;3;4;5; 因此: {1;2;3;4;5;6;7}+{0,1} 由第二个数组中的两个值与第一个数组中的每个值相加,得到: {1,2;2,3;3,4;4,5;5,6;6,7;7,8} 此时,公式转换为: =AND(GESTEP
fanjy
2020-03-12
2.4K0
标签:
小案例-01-字符串转计算公式
Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 Python:3.6.0 本系列介绍一些小案例,综合运用所学,但又不会很复杂 今天介绍字符串转计算公式 已知一个已字符串存储的公式'max(a,b,c,d,e)' 其中a,b,c,d,e分别表示P1-P5点,{'a': 'P1', 'b': 'P2', 'c': 'P3', 'd': 'P4', 'e': 'P5'} 已知P1-P5的取值,求这个公式得到的结果 本示例的应用示例是,计算公式是由用户自由输入,然后写入数据库。 定期更新公式求得的结果 Part 2:步骤 ? 考虑公式中的自变量为小写的a,b,c,d,e,但计算函数如max中也是含有a的。 eval(formula_info_4),将字符串直接转换为公式,并进行运算得出结果 这里需要强烈一下,因为eval是将字符串直接转换为表达式,所以在开放的环境下不建议使用,防止被不友好的人利用。
zishendianxia
2021-03-22
1.1K0
标签:
Excel公式:删除字符串中的所有数字
标签:Excel公式,SUBSTITUTE函数 有时候,可能是由于输入的原因,也可能是由于从网上直接下载的数据,数据中的字符串中夹杂着一些数字,而我们又不想要这些数字,因此,需要从字符串中删除这些数字。 例如,字符串“My2017Excel2022”删除其中的数字后,成为“MyExcel”。 使用什么公式能够达到我们的目的呢? 首先很自然想到的是SUBSTITUE函数,可以用新的字符来替换字符串中的原字符。 这样,假设字符串在单元格B2中,我们可以编写出下面的公式: =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE 幸好只有10个数字,只需替换操作10次,如果更多的话,公式岂不很长。不知道有没有更简单的通用公式,期待朋友们一起探讨。
fanjy
2022-11-16
5.8K0
标签:
Excel经典公式:提取位于字符串后面的数字
标签:公式与函数 有时候,可能有一个数据集,单元格中包含着文本和数字,其中数字在字符串的右侧,如下图1所示,你希望删除所有文本,而只保留数字。 图1 下面的公式将删除数字左侧的所有文本,因此只剩下字符串中的数字部分。 图2 上面的公式移除了单元格中左侧的文本部分,只剩下右侧的数字。 公式中: FIND({0,1,2,3,4,5,6,7,8,9},A2) 将在单元格中查找这10位数字,并返回这些数字的位置组成的数组。 此时,IFERROR公式在单元格中找到数字时将返回一个数字,如果找不到数字,则将返回该单元格中字符串的长度(使用LEN公式完成)。 为此,使用LEN函数来计算单元格中字符串的总长度,并从中减去刚才得到的结果,这样就可以知道左侧有多少个文本字符。 最后,使用了RIGHT函数从右侧提取所有数字,这意味着左侧的所有文本字符都被删除了。
fanjy
2022-06-04
8.9K0
标签:
Excel公式技巧10: 从字符串中提取数字——数字位于字符串开头
本文主要研究从字符串开头提取数字的技术: 1. 这些数字是连续的 2. 这些连续的数字位于字符串的开头 3. 其解析过程如下: ROW(INDIRECT("1:" & LEN(A1))) 生成一个由1至单元格A1中字符串长度数的整数组成的单列数组: {1;2;3;4;5;6} 这样,公式1变为: =-LOOKUP 此外,公式1对于诸如123E3等形式的字符串也无效,其结果将是123000。因为在通常情况下,将123E3输入单元格后,Excel会自动将其转换成科学计数格式。 COUNT函数忽略错误值,得到: =0+LEFT(A1,3) 结果为: 123 下面,尝试一个公式2可不可以处理除字符串开头外其他位置还存在数字的情形,例如如果单元格A1中的数据是“123ABC45”, 原因是字符串的末尾有其他数字,因此COUNT函数统计的数字个数大于字符串开头的数字个数,这样LEFT取值仍是字母数字混合的字符串。
fanjy
2020-02-26
5.5K0
标签:
Excel公式技巧11: 从字符串中提取数字——数字位于字符串末尾
上篇文章讲解了提取位于字符串开头的数字的公式技术,本文研究从字符串开头提取数字的技术: 1. 这些数字是连续的 2. 这些连续的数字位于字符串的末尾 3. 因此,上述公式转换为: =0+MID("ABC456",MIN({7,19,13,14,4,5,6,21,11,17}),LEN("ABC456")) MIN函数返回字符串中数字开始的位置4,因此,上述公式转换为 这样,上述公式转换为: =0+MID("ABC456",4,6) 得到结果: 456 下面我们看看如果单元格A1中的字符串包含其它数字例如123ABC456,公式1是否有效。 LOOKUP与RIGHT 公式2: =-LOOKUP(0,-RIGHT(A1,ROW(INDIRECT("1:"& LEN(A1))))) 这个公式与上一篇文章《Excel公式技巧10:从字符串中提取数字 ——数字位于字符串开头》中的公式1相似,只是使用RIGHT函数代替了LEFT函数。
fanjy
2020-02-26
4.5K0
标签:
Excel经典公式:提取位于字符串右侧的所有字符
标签:公式与函数,FIND函数 假设有一列数据,由左侧的数字和右侧的文本组成,我们需要移除其中的数字而只提取其中的文本。 示例数据如下图1所示。 图1 下面的公式将删除左侧的所有数字,只获得单元格中文本部分。 图2 在公式中,使用FIND函数查找26个字母在字符串中的位置,得到每个字母在单元格中首次出现的位置。注意,由于FIND查找区分大小写,因此使用LOWER(A2)将单元格中的字母转换为小写。 这样,在B2单元格中公式的FIND部分返回的数组为: {#VALUE!,#VALUE!,6,#VALUE!,4,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE! 然后,使用IFERROR函数,这样,如果公式无法找到特定字母表的位置,它将返回单元格中内容的长度(由LEN公式给出),而不是返回值错误#VALUE!。
fanjy
2022-06-04
6K0
标签:
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档