以下代码绘制了ANCOVA的结果:
library(HH)
ancova(weight ~ gesttime + dose, data=litter)
Run Code Online (Sandbox Code Playgroud)

如果我尝试在ggplot中绘制相同的图,则最适合的线的斜率在的不同水平上不是均匀的dose。
library(ggplot2)
ggplot(litter, aes(gesttime, weight)) + geom_point() + facet_grid(. ~ dose) + stat_smooth(method="lm")
Run Code Online (Sandbox Code Playgroud)

如何ancova()使用ggplot 制作与输出相同的图?
我使用以下代码生成了附加的biplot:
dd = data.frame(x = runif(10), y=runif(10))
pcr = prcomp(~x + y, data=dd)
biplot(pcr)
Run Code Online (Sandbox Code Playgroud)
这产生了一个双时隙,显示了x和Y的轴以及10个数据点中的每一个.
假设10个数据点由2个不同的组组成(一组5个,另一组5个).如何在每组周围生成最小凸多边形的双标图,以显示两组的分区?
我可以使用像这样的索引重新排序因子的级别
factor(iris$Species,levels(iris$Species)[c(3:1)])
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试按名称重新排序相同的因子,它不起作用:
factor(iris$Species,levels(iris$Species)[c("virginica", "versicolor", "setosa")])
Run Code Online (Sandbox Code Playgroud)
有没有办法使用他们的名字重新排序因子的级别?
我可以ggmap用这样的点绘制英国地图:
library(ggmap)
UK_map <- get_map(location = c(-2.65, 53.7), zoom = 5, maptype = "hybrid")
UK_map <- ggmap(ggmap=UK_map, extent = "device", legend = "right")
UK_map + geom_point(data = data.frame(x = -1.81, y = 55.655), aes(x, y), size = 5)
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用Winston Chang的multiplot功能,那么这一点就会消失.
multiplot <- function(..., plotlist=NULL, cols) {
require(grid)
# Make a list from the ... arguments and plotlist
plots <- c(list(...), plotlist)
numPlots = length(plots)
# Make the panel
plotCols = cols # Number of …Run Code Online (Sandbox Code Playgroud) 如何使用单个正则表达式匹配以下所有字符串?
这是我尝试过的正则表达式:(?<=.+)site(?=.+)
请注意,更简单的正则表达式可能可以完成这项工作,但重点是了解正则表达式的(?<=.+)和部分的作用。(?=.+)
locationAsite1
locationAsiteNumber1
locationAsiteNumber01
locationAsite01
locationBsite.01
locationB.site.02
(locationB)site.02
<locationB>site<03>s
..locationB..site<03>
Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据框:
set.seed(50)
data.frame(distance=c(rep("long", 5), rep("short", 5)),
year=rep(2002:2006),
mean.length=rnorm(10))
distance year mean.length
1 long 2002 0.54966989
2 long 2003 -0.84160374
3 long 2004 0.03299794
4 long 2005 0.52414971
5 long 2006 -1.72760411
6 short 2002 -0.27786453
7 short 2003 0.36082844
8 short 2004 -0.59091244
9 short 2005 0.97559055
10 short 2006 -1.44574995
Run Code Online (Sandbox Code Playgroud)
我需要计算每年mean.length之间long和之间的差异short.这样做最快的方法是什么?
以下代码显示了使用该effects库的交互图:
model <- lm(mpg ~ hp + wt + hp:wt, data=mtcars)
library(effects)
plot(effect("hp:wt", model, list(wt=c(2.2,3.2,4.2))), multiline=TRUE)
Run Code Online (Sandbox Code Playgroud)

我尝试制作相同的模型,但保持wt在2.2,但此模型无法计算系数wt:
mtcars$wt_2.2 <- 2.2
model2.2 <- lm(mpg ~ hp + wt_2.2 + hp:wt, data=mtcars)
coef(model2.2)
Run Code Online (Sandbox Code Playgroud)
如何使用ggplot2创建相同的图?
我有这个角色矢量:
fruits <- c("melon", "grapefruit", "blueberry")
Run Code Online (Sandbox Code Playgroud)
我也有这个清单:
list_fruits <- list(list(first = "orange", second = NULL, third = "pineapple"),
list(first = "apple", second = NULL, third = "melon"))
list_fruits
[[1]]
[[1]]$first
[1] "apple"
[[1]]$second
NULL
[[1]]$third
[1] "pineapple"
[[2]]
[[2]]$first
[1] "apple"
[[2]]$second
NULL
[[2]]$third
[1] "melon"
Run Code Online (Sandbox Code Playgroud)
如果任何元素fruits等于所述元件的任何列表third中list_fruits,我需要的列表first的list_fruits被outputed作为字符向量.
因此,如果我运行该函数list_fruits,输出将是:
"apple"
Run Code Online (Sandbox Code Playgroud) 下面的代码绘制平均值的采样分布图并计算20批95%置信区间.如何在直方图上绘制置信区间,如下面的Photoshop图像?
# plot sampling distribution of mean -----------------------------------------------------------
set.seed(1)
population <- rnorm(10000, 3, 3)
population_mean <- mean(population)
my_sample <- sample(population, 100, replace = FALSE)
standard_error <- sqrt(var(my_sample)/length(my_sample))
sampling_distribution_of_mean <- rnorm(10000, mean = population_mean, sd = standard_error)
library(ggplot2)
ggplot(data.frame(x = sampling_distribution_of_mean), aes(x)) + geom_histogram() + geom_vline(xintercept = population_mean, color = "red")
# calculate 20 lots of 95% confidence intervals -----------------------------------------------------------
my_confidence_intervals <- function(){
my_sample <- sample(population, 100, replace = FALSE)
sample_mean <- mean(my_sample)
standard_error <- sqrt(var(my_sample)/length(my_sample))
margin_of_error <- 1.96*standard_error
mean_minus_margin_of_error <- …Run Code Online (Sandbox Code Playgroud) 我在R中有这个数据框:
set.seed(1)
count <- sample(1:100, 100, replace = TRUE)
set.seed(2)
year <- sample(1970:2015, 100, replace = TRUE)
library(dplyr)
df <- data_frame(count, year)
df
Source: local data frame [100 x 2]
count year
1 27 1978
2 38 2002
3 58 1996
4 91 1977
5 21 2013
6 90 2013
7 95 1975
8 67 2008
9 63 1991
10 7 1995
.. ... ...
Run Code Online (Sandbox Code Playgroud)
我怎样才能找到每十年(70s ... 10s)的最高数量?