gpt4 book ai didi

r - 在 R 中操作数据帧

转载 作者:行者123 更新时间:2023-12-02 21:43:32 24 4
gpt4 key购买 nike

如果有人可以帮助完成下面的任务,我将非常感激。我搜索了 R 主题,但没有找到任何专门解决此问题的内容。我也尝试过which,table,但没有真正取得任何成果。

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 是我正在使用的两个数据框。我需要使用 B 中给出的名称编号/顺序从 A 构造一个新的数据框( x_2)。新数据框将包含 x_2 中的名称以及 y_1 中每个类别的最早日期(例如,“B10” 中的最早日期) A 中的 code> 类别是 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 )

我的目的是从 B 中减去 A2 中的日期,以获得以天为单位的持续时间数字。上面是我的真实数据的一个非常简化的版本。我正在处理的数据约为 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() 匹配变量的第一次出现,因此它只会选取最早的日期。

关于r - 在 R 中操作数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19933147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com