0

我连续有多个相同的名称,具有不同的日期和对应的值。我想合并这些行并使用日期及其值创建列。知道如何在 R 中做到这一点吗?(我正在学习 R)

ID  Date    Value
62  17/03/2008  1
62  29/09/2008  9
62  01/01/2009  0
66  01/04/2009  6
66  29/06/2009  3
66  30/09/2009  5
75  01/01/2010  6
75  01/04/2010  0
91  01/07/2010  8
91  28/09/2010  0

我想像下面这样转换它

 62        62   66        66    75         75
17/03/2008  1   01/04/2009  6   01/01/2010  6
29/09/2008  9   29/06/2009  3   01/04/2010  0
01/01/2009  0   30/09/2009  5   

完成此操作后,我想以 txt 格式编写组(例如 62、66、75)的输出文件,并将 txt 文件的名称作为前缀为“a”的组名(例如 62a.txt、66a.txt、75a 。文本文件)。我有很长的数据集,因此必须进行某种循环。

4

1 回答 1

1

你想要什么样的输出?你想split根据ID来你的数据吗?这将返回一个列表,其中包含每个 ID 的条目。这是data.frame, 一个可重现的例子。同样,您还应该提供所需输出的结构。

df <- structure(list(ID = c(62L, 62L, 62L, 66L, 66L, 66L, 75L, 75L, 
      91L, 91L), Date = structure(c(6L, 9L, 1L, 3L, 8L, 10L, 2L, 4L, 
      5L, 7L), .Label = c("01/01/2009", "01/01/2010", "01/04/2009", 
      "01/04/2010", "01/07/2010", "17/03/2008", "28/09/2010", "29/06/2009", 
      "29/09/2008", "30/09/2009"), class = "factor"), Value = c(1L, 
      9L, 0L, 6L, 3L, 5L, 6L, 0L, 8L, 0L)), .Names = c("ID", "Date", 
      "Value"), class = "data.frame", row.names = c(NA, -10L))

这就是我认为你想要做的:

split(df, df[,"ID"])
split(df[,c("Date", "Value")], df[,"ID"])
于 2013-07-18T08:01:58.147 回答