r - 用plyr分割数据框

  显示原文与译文双语对照的内容

我在本主题中发现了几个问题/答案,但我无法解决我的问题。 所以我将以我的方式。 很抱歉,如果是明显的。

我准备了一个 dataframe ( 间距) 来与ggplot2一起使用。 这个dataframe包含一个带有实数的列"值",一列"姓名"标识测试的参数,一列"loghos"是每个个体的惟一标识,一列"statut"是结果变量的一列。

通过以下代码,我可以轻松地根据每个的"statut"对该服务器进行 plot 操作:


pt <- ggplot(z2, aes(y = value, x = statut))
pt + geom_boxplot(aes(colour=statut)) + facet_wrap(~name, scales="free_y")

在dataframe中,我为每个"loghos"( 在不同timepoints上的多个示例) 重复了每个"姓名"的值。

我想只对每个'姓名'和每个'患者'的最小值进行 plot 。 所以我尝试用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

我相信没有什么大问题,但是我找不到如何正确地写我。

请提前致谢

朱利安

编辑:下面提供了 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

时间: 原作者:

从注释中回答摘要:

,:" ddply 将数据分成小块;你需要提供一个带块( data.frame )的函数) 作为输入并返回 data.frame. summarise 是一个这样的函数,但 min 本身并不是't"。

因此,为了减少初始 data.frame,,正确的代码是:


x = ddply(z2,. (loghos, name, statut), summarise, value = min(value,na.rm=T))

在这个函数中,只使用 loghosnamevalue,因为 statut is unique for each loghos . I added it to the list to keep its value in the x` data.frame,,因为它是输出变量。

原作者:
...