根据R中其他列的最早日期值创建新列

k

我有一个数据框,看起来像:

Subject = c(1,1,1,1,2,2,2,2)
OBS = c(1.3,2.4,3.3,4.2,1.2,2.7,3.6,4.9)
REFDATE = as.Date(c('2013-09-25', '2013-09-25', '2013-09-26', '2013-09-26', '2013-09-27', '2013-    09-27', '2013-09-30', '2013-09-30')) 
df1 = data.frame(Subject, OBS, REFDATE)

我想添加一个新列(REFDATE2),该列仅包含每个主题的最早REFDATE,得出以下结果

Subject = c(1,1,1,1,2,2,2,2)
OBS = c(1.3,2.4,3.3,4.2,1.2,2.7,3.6,4.9)
REFDATE = as.Date(c('2013-09-25', '2013-09-25', '2013-09-26', '2013-09-26', '2013-09-27', '2013-    09-27', '2013-09-30', '2013-09-30'))
REFDATE2 = as.Date(c('2013-09-25', '2013-09-25', '2013-09-25', '2013-09-25', '2013-09-27', '2013-    09-27', '2013-09-27', '2013-09-27')) 
df2 = data.frame(Subject, OBS, REFDATE, REFDATE2)

数据集中有相当多的主题。我怀疑某种可以识别最早日期的循环函数可以解决这个问题吗?

任何帮助将非常感激。

顺祝商祺

k

大卫·阿伦堡(David Arenburg)

或使用data.table包(也方便快捷)

library(data.table)
df1 <- as.data.frame(data.table(df1)[, REFDATE2:= min(REFDATE), by = Subject])
df1

# Subject OBS    REFDATE   REFDATE2
# 1       1 1.3 2013-09-25 2013-09-25
# 2       1 2.4 2013-09-25 2013-09-25
# 3       1 3.3 2013-09-26 2013-09-25
# 4       1 4.2 2013-09-26 2013-09-25
# 5       2 1.2 2013-09-27 2013-09-27
# 6       2 2.7 2013-09-27 2013-09-27
# 7       2 3.6 2013-09-30 2013-09-27
# 8       2 4.9 2013-09-30 2013-09-27

编辑

根据OP的要求,如果您想增加时间而不是as.Datedo as.POSIXct,那么类似:

Subject = c(1,1,1,1,2,2,2,2)
OBS = c(1.3,2.4,3.3,4.2,1.2,2.7,3.6,4.9)
REFDATE = as.POSIXct(c('2013-09-25 08:30:00', '2013-09-25 08:30:00', '2013-09-26 08:30:00', '2013-09-26 08:30:00', '2013-09-27 08:30:00', '2013-09-27 08:30:00', '2013-09-30 08:30:00', '2013-09-30 08:30:00')) 
df1 = data.frame(Subject, OBS, REFDATE)

library(data.table)
df1 <- as.data.frame(data.table(df1)[, REFDATE2:= min(REFDATE), by = Subject])
df1

# Subject OBS             REFDATE            REFDATE2
# 1       1 1.3 2013-09-25 08:30:00 2013-09-25 08:30:00
# 2       1 2.4 2013-09-25 08:30:00 2013-09-25 08:30:00
# 3       1 3.3 2013-09-26 08:30:00 2013-09-25 08:30:00
# 4       1 4.2 2013-09-26 08:30:00 2013-09-25 08:30:00
# 5       2 1.2 2013-09-27 08:30:00 2013-09-27 08:30:00
# 6       2 2.7 2013-09-27 08:30:00 2013-09-27 08:30:00
# 7       2 3.6 2013-09-30 08:30:00 2013-09-27 08:30:00
# 8       2 4.9 2013-09-30 08:30:00 2013-09-27 08:30:00

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据其他列中的NA值创建新列

来自分类Dev

根据其他列中的值创建新列

来自分类Dev

根据R中其他列的位置创建新列

来自分类Dev

根据r中的其他列创建新列

来自分类Dev

根据其他列R中的不同值创建一个新列R

来自分类Dev

熊猫使用其他列中的值创建新列,并根据列值进行选择

来自分类Dev

在R中如何找到值> 0的最早日期

来自分类Dev

根据其他列中的值在python 3(pandas)数据框中创建新列

来自分类Dev

根据其他列在Pandas DataFrame中创建新列

来自分类Dev

熊猫根据其他列中的条件和值创建新列

来自分类Dev

根据熊猫数据框中其他列的条件和值创建新列

来自分类Dev

Python groupby - 根据其他列中的值创建一个新列

来自分类Dev

R中每个ID的最早日期

来自分类Dev

根据其他两列中的条件在R中创建一个新列

来自分类Dev

根据其他列中的多个条件创建列值

来自分类Dev

根据R中的其他列创建新的数据框列

来自分类Dev

根据其他 3 列的结果在 R 数据框中创建新列

来自分类Dev

根据其他列值创建列

来自分类Dev

使用R根据其他列创建新变量

来自分类Dev

R:如何根据其他列的名称创建新变量

来自分类Dev

使用R根据其他列创建新变量

来自分类Dev

在R中,根据其他列中的值创建连续的1至N列

来自分类Dev

根据R中其他两个列的比较生成新的列值

来自分类Dev

根据其他行中的重复项创建新列

来自分类Dev

根据其他列在R中创建多个列

来自分类Dev

根据R中的其他列创建列序列

来自分类Dev

根据其他列在R中创建多个列

来自分类Dev

根据其他2个数据框中的值创建新列

来自分类Dev

如何在 Pandas 中创建逻辑以根据其他列中的现有值创建新列?

Related 相关文章

热门标签

归档