如果我使用ecdfplot()
的函数latticeExtra
包?我如何获得即对应于y值计算出的实际值~x|g
输入?
我一直在看?ecdfplot
但有详细描述并不是它。 对于平时的高级功能ecdf()
它的工作原理与命令plot=FALSE
但是,这并不为工作ecdfplot()
我想使用的原因ecdfplot()
而不是ecdf()
是我需要计算ecdf()
值,分组变量。 我知道我能做到这一点handish太多,但我很相信是有大路了。
这里一个小expample
u <- rnorm(100,0,1)
mygroup <- c(rep("group1",50),rep("group2",50))
ecdfplot(~u, groups=mygroup)
我想提取给定的每个组为相应的x值y值。
我知道你说你不想使用ecdf
,但在这种情况下,它是很容易使用它,而不是让数据出的格子该对象ecdfplot
回报。 (毕竟,这是所有ecdfplot
是doing-它只是做幕后)。
在您的例子中,下面将让你的y值的矩阵(其中x
为你的整个输入u
,尽管你可以选择不同的功能),每个ECDF:
ecdfs = lapply(split(u, mygroup), ecdf)
ys = sapply(ecdfs, function(e) e(u))
# output:
# group1 group2
# [1,] 0.52 0.72
# [2,] 0.68 0.78
# [3,] 0.62 0.78
# [4,] 0.66 0.78
# [5,] 0.72 0.80
# [6,] 0.86 0.94
# [7,] 0.10 0.26
# [8,] 0.90 0.94
# ...
ETA:如果你只是想每一列中以与该列中的50 x值,你可以这样做:
ys = sapply(split(u, mygroup), function(g) ecdf(g)(g))
(注意,如果各组中的值的数量是不相同的,这将最终作为列表而不是列的矩阵)。
如果你坚持在基础包ECDF()函数,你可以简单地做如下:
创建与您的数据ECDF功能:
fun.ecdf <- ecdf(x) # x is a vector of your data
现在,用这种“ECDF功能”产生你喂养它,包括原始,已排序数据的任何载体的累积概率:
my.ecdf <- fun.ecdf(sort(x))