假设我有一个数据框
coefs,其中每一行包含曲线的模型系数。
coefs <- structure(list(a1 = c(1.22228259789383, 1.2064168157394, 1.09555089661994, 0.943947433470916, 0.883490658557721, 0.46125552320107), d = c(0.385227755933488, 0.457271644919152, 0.340063262461958, 0.305629949064525, 0.42459163183877, 0.425710112988664), g = c(0, 0, 0, 0, 0, 0), u = c(1, 1, 1, 1, 1, 1)), .Names = c("a1", "d", "g", "u"), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L))
我希望能够使用数据框中的每一行根据定义的函数向绘图添加新的曲线:(您可能会将其识别为2PL项目反应模型)
TWOPL <- function(x,a1,b) {
1 / (1 + exp(-a1*(x-(b))))
}
基于这个和这个问题,我尝试使用下面的ggplot命令,但是出现了计算失败的错误:
library(ggplot2)
p <- ggplot(coefs, aes(x = 0))
p + stat_function(fun = TWOPL) + xlim(-5,5)
我知道我需要一种方法将各种系数提供给函数。作为测试,我尝试使用固定参数来创建1条曲线,并且它可以正常工作,例如:
#1 curve based on fixed parameters
TWOPL_copy <- function(x) {
1 / (1 + exp(-1.22*(x-(.385))))
}
p <- ggplot(data.frame(x = 0), aes(x = 0))
p + stat_function(fun = TWOPL_copy) + xlim(-5,5)
我想知道如何将数据框的每一行发送到ggplot。下一步的理想情况是以某种方式区分每条线的颜色。