我试图学习如何在Python中使用itertools.groupby,我想找到每组字符的大小.起初我试着看看我是否能找到一个组的长度:
from itertools import groupby
len(list(list( groupby("cccccaaaaatttttsssssss") )[0][1]))
Run Code Online (Sandbox Code Playgroud)
我每次都会得0.
我做了一点研究,发现其他人这样做:
from itertools import groupby
for key,grouper in groupby("cccccaaaaatttttsssssss"):
print key,len(list(grouper))
Run Code Online (Sandbox Code Playgroud)
哪个效果很好.我感到困惑的是为什么后面的代码有效,但前者没有?如果我想在我的原始代码中尝试只使用第n组,我该怎么做?
我想绘制我的数据的逻辑回归曲线,但每当我尝试我的情节时会产生多条曲线.这是我上一次尝试的照片:
这是我正在使用的相关代码:
fit = glm(output ~ maxhr, data=heart, family=binomial)
predicted = predict(fit, newdata=heart, type="response")
plot(output~maxhr, data=heart, col="red4")
lines(heart$maxhr, predicted, col="green4", lwd=2)
Run Code Online (Sandbox Code Playgroud)
我的教授使用以下代码,但是当我尝试运行它时,我在最后一行得到一个错误,说x和y长度不匹配:
# fit logistic regression model
fit = glm(output ~ maxhr, data=heart, family=binomial)
# plot the result
hr = data.frame(maxhr=seq(80,200,10))
probs = predict(fit, newdata=dat, type="response")
plot(output ~ maxhr, data=heart, col="red4", xlab ="max HR", ylab="P(heart disease)")
lines(hr$maxhr, probs, col="green4", lwd=2)
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
编辑:
根据要求,使用mtcars数据集的可重现代码:
fit = glm(vs ~ hp, data=mtcars, family=binomial)
predicted= predict(fit, newdata=mtcars, type="response")
plot(vs~hp, data=mtcars, col="red4")
lines(mtcars$hp, predicted, …Run Code Online (Sandbox Code Playgroud)