(纵向数据)为每个ID创建具有最后值的新变量

杰斯

我正在使用具有ID,时间戳和值的纵向数据集。我想为每个个体创建一个新变量,以将那个个体的最后一个时间戳的值保存在该个体的每一行中。例如,如果我的数据如下所示:

    ID Time Value
    1  1:20  1
    1  2:43  2
    1  1:56  3
    2  1:10  4
    2  1:05  5

我想创建一个新的变量Final_value,如下所示:

    ID Time Value Final_value
    1  1:20  1    2
    1  2:43  2    2
    1  1:56  3    2
    2  1:10  4    4
    2  1:05  5    4

我更喜欢使用R的内置方法。也许有一种使用“ ave”功能做到这一点的方法吗?

阿克伦

这是的选项dplyr按“ ID”分组,使用hmfrom将“ Time”转换为时间类lubridate,获取max(which.max的索引,并基于该索引对“ Value”进行子集化

library(dplyr)
library(lubridate)
df1 %>%
   group_by(ID) %>%
   mutate(Final_value = Value[which.max(as.numeric(hm(Time)))])
# A tibble: 5 x 4
# Groups:   ID [2]
#     ID Time  Value Final_value
#  <int> <chr> <int>       <int>
#1     1 1:20      1           2
#2     1 2:43      2           2
#3     1 1:56      3           2
#4     2 1:10      4           4
#5     2 1:05      5           4

或使用 base R

df1$Final_value <- with(df1, Value[as.logical(ave(as.numeric(as.POSIXct(Time, 
           format = '%H:%M')),
      ID, FUN = function(x) x== max(x)))][ID])

或者另一个选择是order根据“时间”和“ ID”对数据进行处理,然后last使用ave

i1 <- with(df1, order(ID, as.POSIXct(TIme, format = '%H:%M')))
with(df1[i1,], ave(Value, ID, FUN = function(x) x[length(x)]))

数据

df1 <- structure(list(ID = c(1L, 1L, 1L, 2L, 2L), Time = c("1:20", "2:43", 
"1:56", "1:10", "1:05"), Value = 1:5), class = "data.frame", row.names = c(NA, 
-5L))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

希望为每个用户 ID 创建纵向数据,但我不确定如何填充没有值的月份

来自分类Dev

为原始数据集中的变量的每个值创建一个具有一个案例的新数据集

来自分类Dev

Python闭包,为每个嵌套函数创建具有不同ID的新int

来自分类Dev

为所有变量的数据框中的每个ID添加新行

来自分类Dev

Stata-如何创建在面板数据中每个t都具有值的T变量

来自分类Dev

面板数据:创建具有条件的新变量

来自分类Dev

为变量的每个值导出数据集

来自分类Dev

在R中为每个x轴值创建具有多个y轴值的散点图?

来自分类Dev

从原始数据库为列中的值创建新数据框(需要更改每个新数据框的名称)

来自分类Dev

对常见值的行进行分组,为每个集合创建一个新的“组 ID”

来自分类Dev

为每个用户创建具有多个条件的累积计数器变量

来自分类Dev

从 R 中具有相同 ID 的行创建新变量(在新列中但不创建新列)

来自分类Dev

创建一个在纵向面板数据中合并滞后值的变量

来自分类Dev

在r中将具有时间变量的纵向数据从宽格式转换为长格式

来自分类Dev

R:如何在数据框中创建一个新列,从基数上计算观察值对变量具有相同值的次数

来自分类Dev

为每个组生成具有重复和缺失观测值的ID

来自分类Dev

基于 R 中每个唯一 ID 具有多个值的列创建标志

来自分类Dev

为for循环中的每个循环创建新的变量名

来自分类Dev

从具有多个值分配给每个键的字典中创建数据框

来自分类Dev

为每个新节点创建一个ID号

来自分类Dev

为每个唯一ID创建滞后变量

来自分类Dev

使用SAS中的不同观察值的每个ID新变量

来自分类Dev

如何创建具有3个新列的数据集(每个列来自不同的数据集)并重命名它们?

来自分类Dev

为每个循环创建新的numpy数组数据集

来自分类Dev

R为数据框中的每个主题创建新行

来自分类Dev

为每个数据点创建新行

来自分类Dev

为数据框的每个列(变量)创建单独的向量

来自分类Dev

为变量的每个唯一组合创建具有n个随机数的列

来自分类Dev

计算数据框中的特定值并创建具有总和的新列

Related 相关文章

  1. 1

    希望为每个用户 ID 创建纵向数据,但我不确定如何填充没有值的月份

  2. 2

    为原始数据集中的变量的每个值创建一个具有一个案例的新数据集

  3. 3

    Python闭包,为每个嵌套函数创建具有不同ID的新int

  4. 4

    为所有变量的数据框中的每个ID添加新行

  5. 5

    Stata-如何创建在面板数据中每个t都具有值的T变量

  6. 6

    面板数据:创建具有条件的新变量

  7. 7

    为变量的每个值导出数据集

  8. 8

    在R中为每个x轴值创建具有多个y轴值的散点图?

  9. 9

    从原始数据库为列中的值创建新数据框(需要更改每个新数据框的名称)

  10. 10

    对常见值的行进行分组,为每个集合创建一个新的“组 ID”

  11. 11

    为每个用户创建具有多个条件的累积计数器变量

  12. 12

    从 R 中具有相同 ID 的行创建新变量(在新列中但不创建新列)

  13. 13

    创建一个在纵向面板数据中合并滞后值的变量

  14. 14

    在r中将具有时间变量的纵向数据从宽格式转换为长格式

  15. 15

    R:如何在数据框中创建一个新列,从基数上计算观察值对变量具有相同值的次数

  16. 16

    为每个组生成具有重复和缺失观测值的ID

  17. 17

    基于 R 中每个唯一 ID 具有多个值的列创建标志

  18. 18

    为for循环中的每个循环创建新的变量名

  19. 19

    从具有多个值分配给每个键的字典中创建数据框

  20. 20

    为每个新节点创建一个ID号

  21. 21

    为每个唯一ID创建滞后变量

  22. 22

    使用SAS中的不同观察值的每个ID新变量

  23. 23

    如何创建具有3个新列的数据集(每个列来自不同的数据集)并重命名它们?

  24. 24

    为每个循环创建新的numpy数组数据集

  25. 25

    R为数据框中的每个主题创建新行

  26. 26

    为每个数据点创建新行

  27. 27

    为数据框的每个列(变量)创建单独的向量

  28. 28

    为变量的每个唯一组合创建具有n个随机数的列

  29. 29

    计算数据框中的特定值并创建具有总和的新列

热门标签

归档