点击下边的cell,点击上方工具栏里的执行图标,即可执行代码块,看到输出结果。代码块左边的In[]出现In[*]表示代码正在执行
In [ ]:
library(XML)
giveNames = function(rootNode){
names <- xpathSApply(rootNode,"//h3/a[@class='goods-name']",xmlValue)
names
}
givesevices = function(rootNode){
sevices <- xpathSApply(rootNode,"//h3/a[@class='goods-text']",xmlValue)
sevices
}
giveprices = function(rootNode){
prices <- xpathSApply(rootNode,"//div/span[@class='price']",xmlValue)
prices
}
givemoney = function(rootNode){
money <- xpathSApply(rootNode,"//div/span[@class='money']",xmlValue)
money
}
giveplaces = function(rootNode){
places <- xpathSApply(rootNode,"//a/span[@class='goods-place']",xmlValue)
places
}
getmeituan = function(URL){
Sys.sleep(runif(1,1,2))
doc<-htmlParse(URL[1],encoding="UTF-8")
rootNode<-xmlRoot(doc)
data.frame(
Names=giveNames(rootNode), #店名
services=givesevices(rootNode), #服务
prices=giveprices(rootNode), #现价
money=givemoney(rootNode), #原价
places=giveplaces(rootNode) #地点
)
}
URL = paste0("http://shenzhen.lashou.com/cate/meishi/page",1:10)
mainfunction = function(URL){
data = rbind(
getmeituan (URL[1]),
getmeituan (URL[2]),
getmeituan (URL[3]),
getmeituan (URL[4]),
getmeituan (URL[5])
)
}
ll=mainfunction(URL)
write.table(ll,"result.txt",row.names=FALSE)
ll
输入数据
In [ ]:
#读入数据
x<- c(0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.23)
y<-c(42.0,43.5,45.0,45.5,45.0,47.5,49,53,50,55,55,60)
#绘出 x 与 y 的散列图
plot(y~x)
执行该段代码,即可看到输出图形;从图中我们可以看出 y 和 x 存在线性相关性,可以进行线性回归分析:
In [ ]:
model<-lm(y~x)
summary(model)
我们通过 P 值(就是上面的 pr 那一列)来查看对应的解释变量 x 的显著性,通过将 p 值与 0.05 进行比较,若改值小于 0.05,就可以说该变量与被解释变量存在显著的相关性。
Multiple R-squared 和 Adjusted R-squared 这两个值,就是我们常称为”拟合优度“和”修正的拟合优度“,是指回归方程对样本的拟合程度,这里我们可以看到,修正的拟合优度为 0.9429,表示拟合程度超过五成,这个值越高越好。
最后,看下 F-statistic,也就是常说的 F 统计量,也称为 F 检验,常用语判断方程整体的显著性实验,其 p 值为 9.505e-08,显然小于 0.05,我们可以认为方程在 P=0.05 的水平上是通过显著性检验的。
从上面我们看出我们的线性回归效果不错,那么我们可以利用拟合方程进行分类,或者预测。
In [ ]:
newX<-data.frame(x=0.16)
predict(model,newdata=newX,interval="prediction",level=0.95)#interval=”prediction“ level指定预测的置信区间
In [ ]:
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
print(d.AD <- data.frame(treatment, outcome, counts))
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())
anova(glm.D93)
summary(glm.D93)
In [ ]: