【发布时间】:2021-10-28 11:22:55
【问题描述】:
我有一个字符串向量,就我而言,字符串是逻辑规则。 有很多这样的规则,但为了清楚起见,我只展示了三个。
rules <- c("X[,1]>0.5 & X[,2]<1" , "X[,3]>0.2" , "X[,3]>0.3")
我想将规则转换为整数形式,类似的东西
rules <- c("X[,1]>0.5 & X[,2]<1" , "X[,3]>0.2" , "X[,3]>0.3")
int <- rbind(c(0,0,2,5,0,1,0,0,1,0),c(1,2,0,0,0,0,0,0,0,0),c(1,1,0,0,0,0,0,0,0,0))
.
cbind.data.frame(rules,int)
rules 1 2 3 4 5 6 7 8 9 10
1 X[,1]>0.5 & X[,2]<1 0 0 2 5 0 1 0 0 1 0
2 X[,3]>0.2 1 2 0 0 0 0 0 0 0 0
3 X[,3]>0.3 1 1 0 0 0 0 0 0 0 0
三个条件
-
所有
int向量的长度必须相同 -
如果规则(字符串)与另一个字符串相似,那么
intvectors 也应该相似。为了能够计算字符串或intvectors 之间的距离,这是必要的。 -
能够将字符串转换为 int 形式,以及将 int 形式转换为字符串
这样的转换可能吗?
【问题讨论】:
-
是否有一个
X对象可以评估这些规则(看起来像 R 表达式)?我不明白我们应该如何知道如何生成这些数字序列。 -
好吧,想象一下“规则”只是一个普通的向量:rules
-
当然...但我仍然不明白如何从
"AAA"转到c(0,0,2,5,0,1,0,0,1,0)。似乎随意。字符串与名为"1"到"10"的列之间有什么关系? -
我认为
X[,1](在您的rules中)可能暗示矩阵或类似框架的对象中的第一列,但您的评论表明并非如此。我还认为这可能是字符串中字符位置的推导,但每个字符中的字符数并不适用。 -
问题是我也不知道怎么弄到这个,我还以为有办法呢...比如这个包里fnoorian.github.io/gramEvol/inst/doc/ge-intro.html任何表达式都可以并且每个表达式都有自己独特的基因型prntscr.com/1qqfwm2
标签: r string integer transform