R 函数仅返回 1 个输出,而不是输出列表(没有错误消息)

问题描述 投票:0回答:1

我无法找到这个确切问题的解决方案,因此将不胜感激任何和所有帮助!

我正在编写以下函数:

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 还比较陌生,所以我无法真正弄清楚发生了什么。

r function vector vectorization
1个回答
0
投票

据我所知,您创建的函数 (SS_function_cl) 没有使用 MDE 变量。所有其他输入都是单个值,因此预计会返回单个值。

© www.soinside.com 2019 - 2024. All rights reserved.