RC标签

马修·库珀鲁斯·希恩

2024-01-29

介绍

使用矩阵通常需要操作行和列标签,以实现矩阵数学所需的结果。这个RC标签包(行和列标签)提供操作这些标签的方便工具。

用例

矩阵数学的两个应用是投入产出分析能源经济与实物供应使用表(PSUT)矩阵转换链(ECC)分析。在这些上下文中,行和列标签描述了货物或服务的加工阶段或流程处理阶段。行和列标签可以使这些应用程序受益,确保添加、减去、乘以或划分等,前提是在矩阵运算。

一个尊重行和列标签的包是数学名称从而使经济和ECC投入产出分析更容易。行和列标签的简单操作是,因此,使用数学名称包裹。这个包裹(RC标签)便于操作行和列标签的。事实上数学名称包裹使用RC标签内部功能。

标签结构

行和列标签始终是字符串,通常带有prefix–后缀结构,其中前缀和后缀由分隔符或以其他方式分隔。行和列标签示例包括

前缀通常是人们感兴趣的“东西”,例如能量载体(“煤炭”)或能源转换链中的加工阶段(“主活动发电厂”)。后缀通常是修饰语或关于事物的元数据(前缀)。后缀可以描述能源载体的目的地(“美国轻[->工业]”)。后缀可以描述加工阶段的输出(“生产南非兰特煤炭]”)。

使用行和列标签

这个RC标签程序包简化了使用行和列标签。

符号

RC标签允许创建表示法对象通过符号_vec()功能。

#创建表示法对象。
我的旋转(_N)<- 符号_vec(预启动(_S)= "(",预结束(_E)= ") ",
                            suff_start(启动)= "[",结束(suff_end)= "]")

#符号对象是字符向量。
我的旋转(_N)
#>pref开始pref结束suff开始suff结束
#>        "("       ") "        "["        "]"

为了方便起见,在RC标签。

箭头_旋转
#>pref开始pref结束suff开始suff结束
#>         ""     " -> "     " -> "         ""
括号_旋转
#>预启动预结束开始
#>         ""       " ("       " ("        ")"
括号_旋转
#>pref开始pref结束suff开始suff结束
#>         ""       " ["       " ["        "]"
第一个不旋转
#>pref开始pref结束suff开始suff结束
#>         ""        "."        "."         ""
from_notation(从_旋转)
#>预启动预结束开始
#>“”“[来自”“[自”“]”
旋转(_N)
#>预启动预结束开始
#>“”“[第个,共个”“]”
to_notation(旋转)
#>pref开始pref结束suff开始suff结束
#>“”“[至”“[到”“]”
括号_箭头_旋转
#>pref开始pref结束suff开始suff结束
#>         ""    " [-> "    " [-> "        "]"

注意,相同预结束(_E)suff_start(启动)值(如以上所有符号所示)被解释为单个整个中的分隔符R标签包裹。空字符串("")表示没有给出开始或结束的指示指前缀或后缀。

创建行和列标签

可以使用粘贴_引用_填充()功能

我的标签<- 粘贴_引用_填充(预处理= “煤炭”,萨夫= “来自美国煤矿”,
                            符号=my_notation)
我的标签
#>[1]“(煤炭)[来自美国煤矿]”

操作行和列标签(前缀和后缀)

行和列标签可以使用以下几个有用的功能。

#从后缀中拆分前缀以获得命名字符串列表。
拆分引用后缀(我的标签,符号=my_notation)
#>美元优先股
#>[1]“煤炭”
#>
#>$suff(美元)
#>[1]“来自美国煤矿”

#翻转前缀和后缀,保持相同的符号。
flip_pref_suff(翻转引用)(我的标签,符号=my_notation)
#>[1]“(来自美国煤矿)[煤炭]”

#更改符号。
开关_旋转(我的标签,来自=my_notation(我的旋转),至=paren_符号)
#>[1]“煤炭(来自美国煤矿)”

#更改符号并翻转前缀和后缀。
开关_旋转(我的标签,来自=my_notation(我的旋转),至=paren_符号,翻转= 真的)
#>[1]“来自美国煤矿(煤炭)”

前缀或后缀可以从行或列标签中提取。

获取引用后缀(我的标签,其中= “首选项”,符号=my_notation)
#>首选
#>“煤炭”
获取引用后缀(我的标签,其中= “suff”,符号=my_notation)
#>萨夫
#>“来自美国煤矿”

向量以及行和列标签列表

中的函数RC标签使用向量和列表行和列标签。

标签<- c(“a[在c中为b]”,“d[f中的e]”,“g[i中h的]”)
标签
#>[1]“a[ofbinc]”“d[ofeinf]”“g[ofhini]”

拆分引用后缀(标签,符号=括号_旋转)
#>美元优先股
#>[1]“a”“d”“g”
#>
#>$suff美元
#>[1]“of b in c”“of e in f”“of h in i”

此功能意味着中的函数RC标签可以是用于数据帧。请注意转置=真确保创建一个列表列。

标签
#>[1]“a[ofbinc]”“d[ofeinf]”“g[ofhini]”

数据流<-易怒的::易怒的(标签=标签)
结果<-数据流%>% 
数字播放器::突变(
    分割= 拆分引用后缀(标签,符号=括号_旋转,转置= 真的)
)
结果$分割[[1]]
#>美元优先股
#>[1]“a”
#>
#>$suff(美元)
#>[1]“c中的b”
结果$分割[[2]]
#>美元优先股
#>[1]“d”
#>
#>$suff(美元)
#>[1]“f中的e”
结果$分割[[]]
#>美元优先股
#>[1]“g”
#>
#>$suff(美元)
#>[1]“i中的h”

名词和介词

如上所述,前缀通常是感兴趣的“事物”,并且标签的其余部分(后缀)修改前缀。这个用途这种情况非常常见,我们引入了其他术语附加功能。前缀通常是名词(一个或更多单词),后缀通常包括介词的短语(每个由介词和宾语组成)。RC标签包括常见介词列表。

介词列表
#>[1]“in”到“from”的“of”->“to”

使用行和列标签(名词和介词)

RC标签支持的“名词和介词”视图具有多个函数的行和列标签。获取(_nouns)从行或列标签中提取名词。

标签
#>[1]“a[ofbinc]”“d[ofeinf]”“g[ofhini]”

#提取名词。
获得(_N)(标签,符号=括号_旋转)
#>名词名词名词
#>“a”“d”“g”

#提取介词短语。
获取_pps(标签,符号=括号_旋转)
#>pps pps
#>“of b in c”“of e in f”“of h in i”

#提取介词本身。
获取重新定位(标签,符号=括号_旋转)
#>$介词
#>“中”“的[1]”“
#>
#>$介词
#>“中”“的[1]”“
#>
#>$介词
#>[1]中的“”

#提取介词的宾语。
#宾语由短语的介词命名。
获取对象(_O)(标签,符号=括号_旋转)
#>$个对象
#>中的
#>“b”“c”
#>
#>$个对象
#>中的
#>“e”“f”
#>
#>$个对象
#>中的
#>“h”“i”

#get_piece()函数是一个方便的函数
#那正是你想要的。
获取图片(标签,块= “名词”,符号=括号_旋转)
#>名词名词名词
#>“a”“d”“g”
获取图片(标签,块= “首选项”)
#>首选首选首选
#>“a”“d”“g”
获取图片(标签,件= “suff”)
#>后缀
#>“of b in c”“of e in f”“of h in i”
获取图片(标签,块= “第个,共个”)
#> [[1]]
#>第页,共页
#>“b”
#>
#> [[2]]
#>第页,共页
#>“e”
#>
#> [[3]]
#>第页,共页
#>“h”
获取图片(标签,块= “在”)
#> [[1]]
#>英寸
#>“c”
#>
#> [[2]]
#>英寸
#>“f”
#>
#> [[3]]
#>英寸
#>“i”
#当介词缺失时,返回一个空字符串。
获取图片(标签,块= “假的”)
#> [[1]]
#>伪造的
#>    ""
#>
#> [[2]]
#>伪造的
#>    ""
#>
#> [[3]]
#>伪造的
#>    ""

标签可以拆分为其组成部分。

标签
#>[1]“a[ofbinc]”“d[ofeinf]”“g[ofhini]”
#把标签分成几块,用“名词”和介词命名。
拆分标签<- split_noun_pp(标签,
                             介词=介词列表,
                             符号=括号_旋转)
拆分标签
#> [[1]]
#>in的名词
#>“a”“b”“c”
#>
#> [[2]]
#>in的名词
#>“d”“e”“f”
#>
#> [[3]]
#>in的名词
#>“g”“h”“i”

#重新组合拆分标签。
粘贴_输出_打印(拆分标签,符号=括号_旋转)
#>[1]“a[ofbinc]”“d[ofeinf]”“g[ofhini]”

#用新符号重新组合。
粘贴_输出_打印(拆分标签,符号=paren_符号)
#>[1]“a(of b in c)”“d(of e in f)”“g(of h in i)”

修改行和列标签

要修改行和列标签,请使用修改_*功能。

标签
#>[1]“a[ofbinc]”“d[ofeinf]”“g[ofhini]”

#为名词设置新值。
修饰名词(标签,
             new_nouns(新名)= c(“煤炭”,“石油”,“天然气”),
             符号=括号_旋转)
#>[1]“煤[的b in c]”“油[的e in f]”
#>[3]“天然气[h in i]”

要修改其他标签,请使用修改标签碎片()功能。修改标签碎片()允许使用支持聚合的“一对多”方法。

标签
#>[1]“a[ofbinc]”“d[ofeinf]”“g[ofhini]”

#将几个标签中的名词改为“Production”和“Manufacture”,
#如修改图所示。
修改标签碎片(标签,
                    块= “名词”,
                    修改映射(_M)= 列表(生产= c(“a”,“b”,“c”,“d”),
                                   制造商= c(“g”,“h”,“i”,“j”)),
                    符号=括号_旋转)
#>[1]“b in c的生产”“e in f的生产”
#>[3]“制造[在i中的h]”

#改变“in”介词的宾语,
#根据修改图。
修改标签碎片(标签,
                    件= “在”,
                    修改映射(_M)= 列表(GHA公司= “c”,南非法郎= c(“f”,“i”)),
                    符号=括号_旋转)
#>[1]“a[of b in GHA]”“d[of e in ZAF]”“g[of h in ZAF”

#改变“of”介词的宾语,
#根据修改图。
修改标签碎片(标签,
                    块= “第个,共个”,
                    修改映射(_M)= 列表(煤炭= “b”,`原油` = c(“e”,“h”)),
                    符号=括号_旋转)
#>[1]“a[煤的c]”“d[原油的f]”“g[原油的i]”

要完全删除标签,请使用删除标签碎片()功能。

标签
#>[1]“a[ofbinc]”“d[ofeinf]”“g[ofhini]”

#删除所有以“in”开头的介词短语。
删除标签碎片(标签,
                    块= “在”,
                    符号=括号_旋转)
#>[1]“a[of b]”“d[of e]”“g[of h]”

#删除所有以“of”和“in”开头的介词短语。
#请注意,仍有一些空格。
删除标签碎片(标签,
                    件= c(“第个,共个”,“在”),
                    符号=括号_旋转)
#>[1]“a[]”“d[]”“g[]”

权力越大,责任越大!

检测标签中的字符串

有时,知道字符串是否在标签中是有帮助的。match_by_pattern()搜索行和列中的匹配项按正则表达式标记。在内部,match_by_pattern()使用格雷普()对于常规表达式匹配。

标签<- c(“生产[b in c]”,“d[煤的f值]”,“g[在美国共h个]”)

#使用默认的`pieces`参数,对整个标签进行匹配。
match_by_pattern(匹配_by-pattern)(标签,正则表达式模式= “生产”)
#>[1]真-假-假
match_by_pattern(匹配_by-pattern)(标签,正则表达式模式= “煤炭”)
#>[1]假真假
match_by_pattern(匹配_by-pattern)(标签,正则表达式模式= “美国”)
#>[1]假假真

#检查标签的开头:匹配!
match_by_pattern(匹配_by-pattern)(标签,正则表达式模式= “^生产”)
#>[1]真-假-假
#检查标签末端:无匹配!
match_by_pattern(匹配_by-pattern)(标签,正则表达式模式= “生产$”)
#>[1]假假假

#按前缀或后缀搜索。
match_by_pattern(匹配_by-pattern)(标签,正则表达式模式= “生产”,个= “首选项”)
#>[1]真-假-假
match_by_pattern(匹配_by-pattern)(标签,正则表达式模式= “生产”,个= “suff”)
#>[1]假假假
#当工件为“pref”或“suff”时,只能指定一个。
#以下函数调用出错。
#match_by_pattern(标签,regex_pattern=“生产”,件数=c(“pref”,“to”))

#按名词或介词搜索。
match_by_pattern(匹配_by-pattern)(标签,正则表达式模式= “生产”,个= “名词”)
#>[1]真-假-假
匹配_by_pattern(标签,正则表达式模式= “生产”,个= “在”)
#>[1]假假假
#可以使用复杂的正则表达式模式进行搜索。
match_by_pattern(匹配_by-pattern)(标签,
                 正则表达式模式= 品牌或图案(c(“c”,“f”)),
                 个= “在”)
#>[1]真-真-假
match_by_pattern(匹配_by-pattern)(标签,
                 正则表达式模式= 品牌或图案(c(“b”,“煤炭”,“美国”)),
                 个= “在”)
#>[1]假假真
match_by_pattern(匹配_by-pattern)(标签,
                 正则表达式模式= 品牌或图案(c(“b”,“煤炭”,“美国”)),
                 个= c(“第个,共个”,“在”))
#>[1]真真真
#使用介词的自定义列表。
匹配_by_pattern(标签,
                 正则表达式模式= 品牌或图案(c(“b”,“煤炭”,“GBR”,“美国”)),
                 个= c(“名词”,“第个,共个”,“在”,“至”),
                 介词= c(“第个,共个”,“至”,“在”))
#>[1]真真真

替换标签中的字符串

有时替换标签中的字符串是有帮助的。这个替换by_pattern()函数将替换行中的字符串和列标签。请注意替换by_pattern()类似于match_by_pattern(),除替换by_pattern()有一个额外的参数,更换.内部,替换by_pattern()使用gsub()执行正则表达式匹配。

标签<- c(“生产[b in c]”,“d[煤的f值]”,“g[在美国共h个]”)
标签
#>[1]“产量[b in c]”“d[煤in f]”“g[美国h的]”

#如果`pieces=“all”`(默认值),则可以替换整个标签。
替换by-pattern(标签,
                   正则表达式模式= “生产”,
                   替换= “制造商”)
#>[1]“制造[b in c]”“d[煤in f]”
#>[3]“g[在美国为h]”
替换by-pattern(标签,
                   正则表达式模式= “煤炭”,
                   更换= “石油”)
#>[1]“[b in c]”“d[in f]”“g[of h in USA]”
替换by-pattern(标签,
                   正则表达式模式= “美国”,
                   更换= “GHA”)
#>[1]“【c中的b产量】”“d【f中的煤炭产量】””“g【GHA中的h产量】”

#替换为前缀和后缀。
替换by-pattern(标签,
                   正则表达式模式= “生产”,
                   更换= “制造商”,
                   个= “首选项”)
#>[1]“制造[b in c]”“d[煤in f]”
#>[3]“g[美国h的]”
替换by-pattern(标签,
                   正则表达式模式= “Coa”,
                   更换= “鞠躬”,
                   个= “后缀”)
#>[1]“产量[of b in c]”“d[of Bowl in f]”“g[of h in USA]”
#什么都不应该改变,因为后缀中有USA。
替换by-pattern(标签,
                   正则表达式模式= “SA”,
                   更换= “SSR”,
                   个= “首选项”)
#>[1]“产量[b in c]”“d[煤in f]”“g[美国h的]”
#现在是USA-->USSR,因为USA在后缀中。
替换by-pattern(标签,
                   正则表达式模式= “SA”,
                   更换= “SSR”,
                   个= “suff”)
#>[1]“[b in c]”“d[煤炭in f]”“g[苏联h的]产量”
#这将引发错误,因为只能指定“pref”或“suff”。
#replace_by-pattern(标签,
#regex_pattern=“SA”,
#替换=“SSR”,
#件=c(“pref”,“suff”)

#替换为名词或介词。
替换by-pattern(标签,
                   正则表达式模式= “生产”,
                   更换= “制造商”,
                   个= “名词”)
#>[1]“制造[b in c]”“d[煤in f]”
#>[3]“g[美国h的]”
替换_by_pattern(标签,
                   正则表达式模式= “^Pro”,
                   更换= “反对”,
                   个= “名词”)
#>[1]“传导[b in c]”“d[煤in f]”“g[美国h]”
#不匹配:字符串的错误边。
替换by-pattern(标签,
                   正则表达式模式= “专业$”,
                   更换= “反对”,
                   个= “名词”)
#>[1]“产量[b in c]”“d[煤in f]”“g[美国h的]”
#没有变化,因为“生产”是一个名词。
替换by-pattern(标签,
                   正则表达式模式= “生产”,
                   更换= “制造商”,
                   个= “第个,共个”)
#>[1]“产量[b in c]”“d[煤in f]”“g[美国h的]”
#现在尝试使用“of”。
替换by-pattern(标签,
                   正则表达式模式= “煤炭”,
                   更换= “石油”,
                   个= “第个,共个”)
#>[1]“[c中b的]产量”“d[f中石油的]产量”“g[美国h的]产量”
#没有变化,因为“煤”不“在”任何东西中。
替换_by_pattern(标签,
                   正则表达式模式= “煤炭”,
                   更换= “石油”,
                   个= “在”)
#>[1]“产量[b in c]”“d[煤in f]”“g[美国h的]”
#现在尝试输入“in”。
替换by-pattern(标签,
                   正则表达式模式= “美国”,
                   更换= “GBR”,
                   个= “在”)
#>[1]“【c中的b产量】”“d【f中的煤炭产量】””“g【GBR中的h产量】”
替换by-pattern(标签,
                   正则表达式模式= “澳元”,
                   更换= “超级脆弱性极限”,
                   个= “在”)
#>[1]“生产[b in c]”
#>[2]“d[煤的f值]”
#>[3]“在USupercalifragilisticexpialidocious]中,g为h”

结论

这个RC标签包简化了行的操作和矩阵的列标签。应用包括输入输出经济分析和能源转换链分析或任何地方行和列标签对矩阵数学很重要。