作为逻辑运算的结果,R中的矩阵赋值
对于R,我想生成一个矩阵,其中ε是列,行是输入数据。但是,当我尝试为矩阵赋值时,会出现一个错误: “结果中的错误[,j]ε[j]): 替换长度为零” 我尝试了很多方法,但我还是坚持着。请注意,在使用oracle R对象时会发生此问题。请参阅下面重现问题的小代码:作为逻辑运算的结果,R中的矩阵赋值,r,oracle,matrix,R,Oracle,Matrix,对于R,我想生成一个矩阵,其中ε是列,行是输入数据。但是,当我尝试为矩阵赋值时,会出现一个错误: “结果中的错误[,j]ε[j]): 替换长度为零” 我尝试了很多方法,但我还是坚持着。请注意,在使用oracle R对象时会发生此问题。请参阅下面重现问题的小代码: library(ORE) ore.connect(user="XXXX", service_name="XXXXX", host="XXXXXXXX", password="XXXXX", port=XXXX, all=TRUE) o
library(ORE)
ore.connect(user="XXXX", service_name="XXXXX", host="XXXXXXXX", password="XXXXX", port=XXXX, all=TRUE)
ore.sync('MYDATABASE')
ore.attach()
ore.pull(MY_TABLE)
trainingset <- MY_TABLE$MY_COLUMN[1:1000]
crossvalidationset <- MY_TABLE$MY_COLUMN[1001-2000]
# Training
my_column_avg <- mean(trainingset)
my_column_std <- sd(trainingset)
# Validation
probabilities <- dnorm(crossvalidationset,my_column_avg,my_column_std)
epsilons <- c(0.01,0.05,0.1,0.25,0.5,0.75,0.8)
num_rows <- length(probabilities)
num_cols <- length(epsilons)
results <- matrix(TRUE, num_rows, num_cols)
# Anomaly detection results for several epsilons
for(j in 1:num_cols)
{
results[,j] <- (probabilities > epsilons[j])
}
库(ORE)
ore.connect(user=“XXXX”,service\u name=“XXXXX”,host=“XXXXXXXX”,password=“XXXXX”,port=XXXX,all=TRUE)
ore.sync('MYDATABASE')
附件(
矿石拉力(我的桌子)
trainingset对象MY_表是oracle表对象,不是数据帧,也不是概率,因为它是从MY_表派生的。
但是,当尝试将值分配给R矩阵时,会出现如下所示的错误:
results[,j] <- (probabilities > epsilons[j])
结果[,j]ε[j])
上述错误的原因是由于使用了oracle R库(ORE)
如果从一开始就在上面的代码中使用公共R数据结构,那么这个问题就不会发生。例如,将MY_TABLE oracle对象替换为数据帧
因此,一个好的做法是尽可能摆脱Oracle R对象并使用R数据帧。什么是inkpressureprob
?我已将其设置为0.12,脚本运行正常。您好,请替换inkpressureprob以获取概率。看看上面的新代码。你的代码对我来说很好!问题被改写,以更好地代表问题。事实证明,问题只发生在涉及Oracle R对象的情况下。因此,它们包含在示例代码中。