我无法找到这个确切问题的解决方案,因此将不胜感激任何和所有帮助!
我正在编写以下函数:
SS_function_cl = function(MDE, variance, variance_endline, k, cluster_size, sig_t, power_t, binary_baseline, binary_endline){
1 +
((((sig_t + power_t)^2)* ((variance/cluster_size) + (variance_endline/cluster_size) + ((k^2)*(binary_baseline^2 +binary_endline^2))))/(binary_baseline^2 * binary_endline^2))
}
其中包含以下每个输入:
binary_baseline = .5
MDE_value = .25
binary_endline = .5 + .25
variance = binary_baseline*(1-binary_baseline)
variance_endline = binary_endline*(1-binary_endline)
ICC = .2
k = sqrt((ICC*((1-binary_baseline)/binary_baseline)))
top_y = 1
bottom_y = .05
MDE = seq(bottom_y, top_y, by=((top_y-bottom_y)*.05))
sig_t = qt(p = 1-(.05/2), df = 100000000)
power_t = qt(p = .8, df = 100000000)
cluster_size = 20
N_clusters = SS_function_cl(MDE, variance, variance_endline, k, cluster_size, sig_t, power_t, binary_baseline, binary_endline)
sample_size = cluster_size * N_clusters
创建下图:
data <- data.frame(MDE,sample_size)
data %>% ggplot(aes(x=sample_size, y=MDE)) +
geom_line(aes(color="E35925")) +
geom_point(aes(color="E35925")) +
theme(legend.position="none",
axis.text=element_text(size=12),
axis.title=element_text(size=14),
text = element_text(family = "Century Gothic")) +
labs(y= "MDE", x = "Sample Size") +
geom_hline(yintercept=MDE_value, color = "#2FAA9F")
问题是,虽然我的 MDE 输入显示为数字向量,但我的 N_clusters 输出仅显示一个值。我不确定这是从哪里来的,因为我的代码中的所有其他函数都非常相似并且它们都可以工作。有谁能帮忙解答一下吗?
非常感谢!
我尝试返回一个列表和 lapply 函数,但我对 R 还比较陌生,所以我无法真正弄清楚发生了什么。
据我所知,您创建的函数 (SS_function_cl) 没有使用 MDE 变量。所有其他输入都是单个值,因此预计会返回单个值。