【发布时间】:2013-01-11 09:56:02
【问题描述】:
(对不起,如果标题不是很丰富:我不知道如何更好地定义这个问题)
我的数据格式如下:
在每个组中,我有一个 pre 值和一个或两个 post 值。我想将此表转换为以下内容:
我正在考虑将数据分组为:
aggregate(mydata, by = group, FUN = myfunction)
或
ddply(mydata, .(group), .fun = myfunction)
并在我的函数中处理每个组的元素。但我不知道该怎么做,因为我需要同时将type 和value 传递给我的函数。有没有更好的方法来做到这一点?
更新:快速而肮脏的示例数据集:
mydata <- data.frame(group = sample(letters[1:5], 10, replace = TRUE),
type = sample(c("pre", "post"), 10, replace = TRUE),
value = rnorm(10))
【问题讨论】:
-
截图真的没用。您能否发布一些示例数据,我们可以将其复制并粘贴到 R 会话中进行处理。
-
啊,对不起,你是对的。请稍等,我将附上示例数据。
-
我会说使用 reshape2 包中的 dcast(),但你在 C 组中有那个讨厌的 post2。
-
谢谢,我去看看 dcast。但是,一般来说 - 没有办法将子集的多个变量传递给用户的函数?这对我来说会容易得多:然后我会简单地返回一个包含每个子集的“pre”、“post1”和“post2”的列表......
-
@VasilyA,另一个提示,当发布使用随机数生成器的示例数据时,请务必在代码前使用
set.seed()。这将使每个人都在使用相同的数据。