【发布时间】:2012-12-07 17:37:25
【问题描述】:
我找到了关于这个主题的几个问题/答案,但我无法解决我的问题......所以我会问我的方式。对不起,如果很明显。
我准备了一个与 ggplot2 一起使用的数据框 (z2)。该数据框包含一个带有实数的“值”列,一个标识测试参数的“名称”列,一个作为每个人的唯一 ID 的“loghos”列,以及一个作为结果变量的“statut”列。
我能够使用以下代码轻松地根据每个“名称”的“statut”绘制“值”:
pt <- ggplot(z2, aes(y = value, x = statut))
pt + geom_boxplot(aes(colour=statut)) + facet_wrap(~name, scales="free_y")
在数据框中,我为每个“loghos”(不同时间点的几个样本)的每个“名称”重复了值。
我只想绘制每个“姓名”和每个“患者”的最小值。所以我尝试为此使用 plyr,然后我写道:
x = ddply(z2, .(loghos,name), function(x) return(min(x,na.rm=T)))
但是,我收到了这个错误信息,现在我不知道该怎么办?
Erreur dans FUN(X[[1L]], ...) :
only defined on a data frame with all numeric variables
我确定这没什么大不了的,但我找不到正确的 i 写法!
提前致谢,
朱利安
已编辑:data.frame 示例如下所示
y = z2[sample(nrow(z2),20),c(1,2,3,9,11,12,13)]
y
cleBilan name value loghos sexe age statut
80612 328347 plaq 384.00 31218139 M 21 transfert
36304 363835 gb 5.62 41416171 M 72 service
59346 267744 lympho 9.90 30628552 F 22 service
62746 388270 lympho 8.70 41620223 M 78 service
81046 342228 plaq 185.00 41120284 M 19 service
67400 323055 mono 3.10 31273421 F 45 service
35572 335928 gb 16.16 41178061 F 22 transfert
71136 256960 neutro 10.65 30401746 M 71 transfert
34324 293368 gb 16.20 30894579 F 30 service
69010 383939 mono 6.90 41574890 M 22 service
63665 236360 mono 4.40 29970714 M 71 service
31366 233999 gb 7.20 29959612 F 18 service
60867 317932 lympho 12.00 31229099 M 50 service
74487 355581 neutro 10.68 41154330 F 23 service
65520 265864 mono 7.00 30583193 M 78 service
36553 375590 gb 7.10 41489078 M 61 service
65849 268730 mono 3.90 30652360 M 89 deces
80813 354964 plaq 404.00 41120284 M 19 service
31271 232524 gb 6.30 29934806 M 36 service
72789 291335 neutro 11.00 30923095 F 35 service
【问题讨论】:
-
你好,朱利安,你能提供some sample data吗? :)
-
可能是
ddply(z2, .(loghos, name), summarise, value = min(value,na.rm=T)),没有数据很难判断 -
或
ddply(z2, .(loghos,name), function(x) min(x$value,na.rm=T))。ddply传递给匿名函数的参数是一个data.frame。 -
ddply将数据拆分成小块;您需要为其提供一个函数,该函数将块(data.frame)作为输入并返回一个data.frame。summarise就是这样一种功能,但min本身不是。 -
有人可以发布这些 cmets 之一(或合成它们)作为答案...(@jtextori,您可以发布自己问题的答案...)
标签: r split statistics dataframe plyr