我正在使用此页面执行逻辑回归.我的代码如下.
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
mylogit <- glm(admit ~ gre, data = mydata, family = "binomial")
summary(mylogit)
prob=predict(mylogit,type=c("response"))
mydata$prob=prob
Run Code Online (Sandbox Code Playgroud)
运行此代码后,mydata dataframe有两列 - 'admit'和'prob'.这两列不应该足以获得ROC曲线吗?
如何获得ROC曲线.
其次,通过嘲笑mydata,似乎模型正在预测可能性admit=1.
那是对的吗?
如何找出模型预测的特定事件?
谢谢
更新:似乎以下三个命令非常有用.它们提供了最大精度的截止点,然后有助于获得ROC曲线.
coords(g, "best")
mydata$prediction=ifelse(prob>=0.3126844,1,0)
confusionMatrix(mydata$prediction,mydata$admit
Run Code Online (Sandbox Code Playgroud) 我正在创建自己的R包,我想知道可以使用哪些方法将(时间序列)数据集添加到我的包中.以下是具体内容:
我创建了一个名为data的包子目录,我知道这是我应该保存要添加到包中的数据集的位置.我也认识到包含数据的文件可能是.rda,.txt或.csv文件.
我想要添加到包中的每个数据系列由一列数字组成(例如,形式为340或4.5),并且每个数据系列的长度不同.
到目前为止,我已将所有数据集保存到.txt文件中.我还使用data()函数成功加载了数据.然而,问题没有解决.
问题是每个数据系列都作为一个因素加载,除了长度最大的系列.作为因子加载的系列包含缺失值(形式为'.').我不得不添加这些缺失值,以使每列数据的长度相同.我尝试将数据保存为不相等的列,但在调用data()后收到错误消息.
添加缺失值以加载数据的结果是,一旦加载了数据,我需要删除NA,以便继续我的数据分析!所以,这显然不是一种好的做事方式.
理想情况下(我想),我希望将数据作为数字向量或列表加载.通过这种方式,我不需要在每个系列的末尾添加NA.
我该如何解决这个问题?我应该将所有数据保存到一个文件中吗?如果是这样,我应该采用何种格式?也许我应该将数据集保存到多个文件中?再次,以哪种格式?这样做的最佳实用方法是什么?非常感谢任何提示.
我有一个字符串,如"3.1 ml"或"abc 3.1 xywazw"
我想"3.1"从这个字符串中提取.我在stackoverflow上发现了很多关于从字符串中提取数字的问题,但没有解决方案适用于十进制数字的情况.
在创建数据框时(或者在使用cbind的类似情况下)R中是否有一种方法可以将变量计算为列名?
例如
a <- "mycol";
d <- data.frame(a=1:10)
Run Code Online (Sandbox Code Playgroud)
这将创建一个数据框,其中一列命名a而不是mycol.
这比帮助我从代码中删除相当多行的情况要重要得多:
a <- "mycol";
d <- cbind(some.dataframe, a=some.sequence)
Run Code Online (Sandbox Code Playgroud)
我目前的代码遭受了折磨:
names(d)[dim(d)[2]] <- a;
Run Code Online (Sandbox Code Playgroud)
这是美学上的barftastic.
我的情节中有一个传奇,但我正在尝试增加字体大小以使其适合图例框.当我尝试增加以下cex定义时.盒子变大了,而文字仍然很小.
码:
legend(0,16, c("Available vCPUs","Added vCPUs (1 per iteration ) "),col=c('red','black'),cex=0.39,lty=1:1,lwd=2)
情节摘录:
是否有R函数(或任何包)允许使用标准单位前缀(Kilo,Mega等...)格式化数字(整数),所以
10 -> 10
100 -> 1K
0.01 - > 10m
Run Code Online (Sandbox Code Playgroud)
等等......我可以自己做,但我宁愿不重新发明轮子.
我正在尝试在R中设置自定义比例.我的数据范围从-5.4到+3.6,我想将数据居中于0(白色).我希望对数据进行缩放,使得我在0以上和以下具有相同数量的渐变(我现在正在拍摄7个).我遇到的问题是我无法正确缩放,我不确定我的问题在哪里.
我的代码(源数据在底部的Pastebin链接中):
png('127-2_4_compare_other.png',width = 1200, height = 800, units = "px")
colfunc <- colorRampPalette(c("blue", "white", "red"))
f <- function(m) t(m)[,nrow(m):1]
colorBarz=matrix(seq(-5.5,4,len=15),nrow=1)
colorBarx=1
source("127-2_4.CompareMatrix.txt")
colorBary=seq(-5.4,3.6,len=15)
cus_breaks=c(-5.400, -4.725, -4.050, -3.375, -2.700, -2.025, -1.350, -0.675, 0.45, 0.90, 1.35, 1.80, 2.25, 2.70, 3.15, 3.60)
layout(matrix(c(1,2), 1, 2, byrow = TRUE), widths=c(9,1))
image(f(Compare2and4),axes=FALSE,ylab="Amino acids",xlab="Position",main="Sample 2 vs. 4",col=colfunc(15),breaks=cus_breaks)
axis(1, seq(from = 0, to = 1, by = 0.03703), labels=c(1:11,1:17))
axis(2, seq(from = 0, to = 1, by = 0.0526),labels=rev(c("A","R","N","D","C","E","Q","G","H","I","L","K","M","F","P","S","T","W","Y","V")),las=2)
image(colorBarx,colorBary,colorBarz,col=colfunc(15),axes=FALSE,xlab="",ylab="log(Sample4 / Sample2)",breaks=cus_breaks)
axis(2,las=2)
dev.off()
Run Code Online (Sandbox Code Playgroud)
我正在寻找0到3.6之间的7个均匀分割的箱子和0到-5.4以下的7个均匀分开的箱子,我想要在白色箱子的中间点击0.此外,如果任何人都可以查看热图代码本身,以确保没有明显的错误,我会非常感激.源数据的Pastebin
我有一个带有ID列的数据框和几列值.我想仅根据该行中ID的值是否与另一组值匹配(例如,称为"keep")来保留数据帧的某些行.
为简单起见,这是一个例子:
df <- data.frame(ID = sample(rep(letters, each=3)), value = rnorm(n=26*3))
keep <- c("a", "d", "r", "x")
Run Code Online (Sandbox Code Playgroud)
如何创建一个新的数据框,其中的行只包含与keep相匹配的ID?我可以通过使用该which()函数只为一个字母执行此操作,但是使用多个字母我会收到警告消息和错误的返回.我知道我可以在数据框中运行for循环并以此方式推断,但我想知道是否有更优雅和有效的方法来解决这个问题.提前致谢.
我试图了解 cut 如何划分和创建间隔;尝试过?cut但无法弄清楚r 中的cut是如何工作的。
这是我的问题:
set.seed(111)
data1 <- seq(1,10, by=1)
data1
[1] 1 2 3 4 5 6 7 8 9 10
data1cut<- cut(data1, breaks = c(0,1,2,3,5,7,8,10), labels = FALSE)
data1cut
[1] 1 2 3 4 4 5 5 6 7 7
Run Code Online (Sandbox Code Playgroud)
1. 为什么data1cut结果中没有包含8,9,10 ?
2.为什么summary(data1)和summary(data1cut)产生不同的结果?
summary(data1)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 3.25 5.50 5.50 7.75 10.00
summary(data1cut)
Min. 1st Qu. Median Mean 3rd Qu. …Run Code Online (Sandbox Code Playgroud) 我最近更新到R 3.1.3,我正在使用RStudio和packrat.我正在尝试使用RStudio在构建的"构建和重新加载"工具中重新构建我的包,但它不起作用.我一直收到以下错误:
Updating standaRd documentation
Loading standaRd
Error in (function (dep_name, dep_ver = NA, dep_compare = NA) :
Dependency package ggplot2 not available.
Calls: suppressPackageStartupMessages ... <Anonymous> -> load_all -> load_depends -> mapply -> <Anonymous>
Execution halted
Exited with status 1.
Run Code Online (Sandbox Code Playgroud)
问题是,我已经ggplot2在所有地方安装了包括我的本地库和我的包装库,用于R 3.1.2和R 3.1.3的这个项目.我试过加载它们无济于事.
另外,使用devtools::build()和devtools::document()都工作,所以我假设这是一个RStudio问题?
注意:我使用的是RStudio版本0.99.235.
编辑:我也看不到我的包的任何文档,它似乎不在我的packrat库中.
第二次编辑:我已经卸载了R 3.1.3并恢复到R 3.1.2并且我仍然遇到同样的问题.
第三次编辑:这些是我的依赖:
Depends:
R (>= 3.1.2),
ggplot2 (>= 1.0.0),
grid
Run Code Online (Sandbox Code Playgroud)