在R中处理数据帧

约翰·迪克斯

如果有人可以帮助完成以下任务,我将非常感激。我搜索了R主题,但没有找到任何专门解决此问题的方法。我也尝试过使用哪张桌子,但并没有真正达到目的。

x_1 <- c("A1", "A1", "B10", "B10", "B10", "C100", "C100", "C100")
y_1 <- as.Date(c("2010-11-17", "2010-11-17", "2010-11-17", "2009-02-14",
                 "2004-10-20", "2008-03-21", "2010-09-30", "2004-06-22"))
A <- data.frame(x_1, y_1)

x_2 <- c("A1", "B10", "B10", "B10","B10", "C100", "C100", "C100")
y_2 <- as.Date(c("2013-07-23", "2012-01-01", "2011-08-29", "2011-10-20",
                 "2010-08-10", "2012-06-21", "2013-08-27", "2012-11-25"))
B <- data.frame(x_2, y_2)

AB是我工作两个数据帧。我需要A使用B x_2)中给定的名称编号/顺序来构造一个新的数据框新的数据框将包含名称x_2以及每个类别中最早的日期y_1(例如,"B10"来自Ais的类别中最早的日期2004-10-20等等),以便最终A2得到下面给出的新数据框

x_3 <- c("A1", "B10", "B10", "B10", "B10", "C100", "C100", "C100")
y_3 <- as.Date(c("2010-11-17","2004-10-20", "2004-10-20", "2004-10-20",
                 "2004-10-20","2004-06-22", "2004-06-22", "2004-06-22" ) )
A2 <- data.frame(x_3, y_3 )

我的目的是减去日期A2B获得在天期限的身影。上面是我的真实数据的非常简化的版本。我正在处理的数据约为3000行。

任何帮助将不胜感激,如有任何需要澄清的地方,请告诉我。我在MAC中使用R的2.15.2版本。

谢谢

山姆·迪克森

这是创建您的方法之一A2

C <- A[order(A$x_1,A$y_1),]
A2 <- C[match(B$x_2,C$x_1),]

使用order()将确保最早的日期在第一位。使用会match()匹配变量的第一个出现位置,因此它只会选择最早的日期。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章