我正在尝试设计一个应用安全bool习语的bool包装器结构.
解决这个问题的经典实现非常简单:骨架可能是这样的:
struct Bool final
{
Bool() = default;
Bool(bool value)
: _value{value}
{}
explicit operator bool() const {
return _value;
}
private:
bool _value{false};
};
Run Code Online (Sandbox Code Playgroud)
我试图改进的部分是如何Bool构建的.
例如,我想通过设计避免隐式缩小:
Bool b1(45); // yields warnings, but it compiles
Bool b2{3}; // not ok by standard
Run Code Online (Sandbox Code Playgroud)
我试图用模板伤害自己,但没有成功.
我怎么能让它工作?
我想运行R脚本并使用保存图png().Unix服务器不支持X11,我收到以下错误消息:
Error in X11(paste("png::", filename, sep = ""), g$width, g$height, pointsize, :
unable to start device PNG
Calls: png
In addition: Warning message:
In png("test.png", width = 900, height = 400) :
unable to open connection to X11 display ''
Execution halted
Run Code Online (Sandbox Code Playgroud)
设置环境变量
Sys.setenv("DISPLAY"=":0.0")
Run Code Online (Sandbox Code Playgroud)
要么
Sys.setenv("DISPLAY"=":0")
Run Code Online (Sandbox Code Playgroud)
在R脚本中没有解决问题.
此代码示例产生上述错误:
library(ggplot2)
library(grid)
# Some data
df = data.frame(x = c(1.2,5,3,5.3,2,9,4,6,8,0), y = c(1.5,6,2.5,5.1,2.3,8.7,4.1,6,8,0))
# Base plot
p <- ggplot(df, aes(x,y)) + geom_point() +
scale_x_continuous(limits = c(0, 8), expand = c(0,0)) …Run Code Online (Sandbox Code Playgroud) 
请参考上图.我在excel中绘制了方程式,然后手工着色.你可以看到它不是很整洁.您可以看到有六个区域,每个区域由两个或更多个方程组成.使用阴影图案绘制不等式和阴影区域的最简单方法是什么?
使用parallelR包,我可以像这样并行运行:
library(parallel)
cl <- makeCluster(2) # Create a cluster with 2 workers
... # do some parallel stuff
stopCluster(cl)
Run Code Online (Sandbox Code Playgroud)
但是,cl引用群集的变量可能会丢失,例如从失败的函数运行时:
do.something <- function() {
library(parallel)
cl <- makeCluster(detectCores())
parLapply(cl, 1:10, function(x) {
stop("An error occured")
})
stopCluster(cl)
}
do.something()
Run Code Online (Sandbox Code Playgroud)
在这里,stopCluster还没有被执行.当发生这种情况时,我会让工作人员继续运行,如下所示ps:
501 53300 9225 0 2:16PM ttys003 0:00.27 /opt/local/Library/Frameworks/R.framework/Resources/bin/exec/R
501 53390 1 0 2:19PM ttys003 0:00.16 /opt/local/Library/Frameworks/R.framework/Resources/bin/exec/R --slave --no-restore -e parallel:::.slaveRSOCK() --args MASTER=localhost PORT=11099 OUT=/dev/null TIMEOUT=2592000 XDR=TRUE
501 53399 1 0 2:19PM ttys003 …Run Code Online (Sandbox Code Playgroud) 我有一个包含两列的数据框:score1哪个是numeric,truth1哪个是boolean.我想预测truth1使用score1.要做到这一点,我想要一个简单的线性模型,然后要求一个好的阈值,即一个阈值,它在我的ROC曲线中给出了75%的灵敏度.因此,我这样做:
roc_curve = roc(truth1 ~ score1 , data = my_data)
coords(roc=roc_curve, x = 0.75, input='sensitivity', ret='threshold')
Run Code Online (Sandbox Code Playgroud)
我的问题是coords返回'NA',因为0.75的灵敏度没有出现在ROC曲线中.所以这是我的问题:如何获得阈值,这给我的灵敏度至少为0.75,具有最大特异性?
有没有一种可移植的方法来获取 R 中的空设备?
目前我正在这样做:
dev.null <- ifelse(.Platform$OS.type == "windows", "NUL:", "/dev/null")
Run Code Online (Sandbox Code Playgroud)
稍后我可以例如sink(dev.null)或try(..., outFile = dev.null)。
然而,这对我来说似乎不太稳健。有更好的方法吗?
这段代码可以画出一条带有置信区间的roc曲线:
ciobj <- ci.se(obj, specificities=seq(0, 1, l=25))
dat.ci <- data.frame(x = as.numeric(rownames(ciobj)),
lower = ciobj[, 1],
upper = ciobj[, 3])
ggroc(obj) + theme_minimal() + geom_abline(slope=1, intercept = 1, linetype = "dashed", alpha=0.7, color = "grey") + coord_equal() +
geom_ribbon(data = dat.ci, aes(x = x, ymin = lower, ymax = upper), fill = "steelblue", alpha= 0.2) + ggtitle(capture.output(obj$ci))
Run Code Online (Sandbox Code Playgroud)
这段代码可以一起绘制多条roc曲线
roc.list <- roc(outcome ~ s100b + ndka + wfns, data = aSAH)
g.list <- ggroc(roc.list)
g.list
Run Code Online (Sandbox Code Playgroud)
但我无法将它们组合在一起:
ggroc(roc.list) + theme_minimal() + geom_abline(slope=1, …Run Code Online (Sandbox Code Playgroud) 我在 R 中有一个 S3 对象,类似于:
myObject <- list(
someParameter1 = 4,
someList = 1:10
)
class(myObject) <- "myClass"
Run Code Online (Sandbox Code Playgroud)
我为这个类创建了一个提取方法:
"[.myClass" <- function(x, i) {
x$someList[i] * x$someParameter1
}
myObject[5]
# 20
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个分配方法(据?Extract我所知,这称为子分配),以便我可以编写:
myObject[5] <- 250
myObject[5]
# 1000
Run Code Online (Sandbox Code Playgroud)
我首先天真地尝试将其写为
"[<-.myClass" <- function(x, i, value) {
x$someList[i] <- value
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,这会替换myObject为value. 我怀疑我必须修改xand then assign("someName", x, pos=somewhere),但是我怎样才能可靠地确定someNameandsomewhere呢?
或者有其他方法可以做到这一点吗?
我想通过在R中使用pROC包的'roc'函数创建roc对象,并绘制roc对象。但是,我不确定“方向”论据的作用。我的控件的中值预测值小于案例的中值预测值。所以我认为正确的方向应该是“ <”。但是,如果我使用方向参数“>”进行绘制。它只是将ROC曲线在对角线上翻转为镜像。我想知道在这种情况下,数据告诉您一件事,而论点正在迫使一个不同的方向,将什么与什么进行比较,以及如何进行比较?我通读了pROC手册中有关“方向”参数的内容,其解释非常简短且不清楚。
希望听到您的一些意见!
我无法使 ROC 函数工作,出现错误“预测器必须是数字或有序”。
我浏览了其他帖子,但没有解决我的问题。任何帮助都受到高度赞赏。
"Get data"
flying=dget("https://www.math.ntnu.no/emner/TMA4268/2019v/data/flying.dd")
ctrain=flying$ctrain
ctest=flying$ctest
library(MASS)
fly_qda=qda(diabetes~., data=ctrain)
#Test error is given below:
predict_qda=predict(fly_qda, newdata=ctest, probability=TRUE)
table_qda<-table(ctest$diabetes, predict_qda$class)
error_qda<-1-sum(diag(table_qda))/sum(table_qda)
error_qda
"ROC curve and AUC"
predict_qdatrain<-predict(fly_qda, newdata=ctrain)
roc_qda=roc(response=ctrain$diabetes, predictor= predict_qdatrain$class, plot=TRUE)
plot(roc_qda, col="red", lwd=3, main="ROC curve QDA")
auc_qda<-auc(roc_qda)
Run Code Online (Sandbox Code Playgroud)
我想要绘制的 ROC 曲线和 AUC