假设我有以下数据:
df1<-rnorm(100,000, 20,5)
我想从df1获得以下样本,每个样本有50个试验:
C=( 25,50,100,200,300,400,500,600)
接下来,我想绘制一条趋势线。在趋势线图中,x轴=样本大小,y轴为SD和SEM。抱歉,我无法绘制情节,但希望我的描述很清楚。谢谢你的帮助。
我不确定您要在这里做什么,但这是我想通过的第一步:
library(ggplot2)
my_theme = theme_minimal() + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"), legend.title = element_blank())
df1 <- rnorm(100000, 20, 5)
df <- data.frame(sample_size = c(25,50,100,200,300,400,500,600))
samples <- lapply(df$sample_size, function (x) {sample(df1, x)})
df$std <- sapply(samples, sd)
df$se <- sapply(samples, function(x) {sd(x)/sqrt(length(x))})
ggplot(data = df) + geom_point(aes(x = sample_size, y = std, colour = "std")) + geom_point(aes(x = sample_size, y = se, colour = "se")) +
geom_smooth(aes(x = sample_size, y = std), method = "lm",) +
geom_smooth(aes(x = sample_size, y = se), method = "lm") + my_theme
我更喜欢将ggplot2库用于绘图,而不是使用基数R附带的库。您可以忽略该my_theme
零件,这只是我更喜欢的美学。这是情节:
如果这不是您想要的东西,那么您应该可以修改这里的内容以获取想要的东西,除非我完全误解了您的问题。无论如何,重要的部分是使用lapply
并sample
从中获取样本列表df1
。然后,你可以计算出每个使用的标准偏差sapply
,并sd
使用标准错误sapply
,sd
,sqrt
,和length
。
两个sapply
和lapply
是有用的尤其是因为用户定义的函数可以作为代替参数传递。我建议看一下lapply以了解它在做什么(sapply
只是lapply
返回向量的包装器)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句