gpt4 book ai didi

r - 通过基于 R 中的键减去值来创建新列?

转载 作者:行者123 更新时间:2023-12-02 03:13:11 25 4
gpt4 key购买 nike

我有一个这样的数据表

ID      DAYS    FREQUENCY
"ads" 20 3
"jwa" 45 2
"mno" 4 1
"ads" 13 3
"jwa" 60 2
"ads" 18 3

我想添加一个列,根据id减去最接近的天数。我的新表会像这样:

ID      DAYS    FREQUENCY    DAYS DIFF
"ads" 20 3 2 (because 20-18)
"jwa" 45 2 NA (because no value greater than 45 for that id)
"mno" 4 1 NA
"ads" 13 3 NA
"jwa" 60 2 15
"ads" 18 3 5

奖励:有没有办法使用合并功能?

最佳答案

这是使用 dplyr 的答案:

require(dplyr)
mydata %>%
mutate(row.order = row_number()) %>% # row numbers added to preserve original row order
group_by(ID) %>%
arrange(DAYS) %>%
mutate(lag = lag(DAYS)) %>%
mutate(days.diff = DAYS - lag) %>%
ungroup() %>%
arrange(row.order) %>%
select(ID, DAYS, FREQUENCY, days.diff)

输出:

      ID  DAYS FREQUENCY days.diff
<fctr> <int> <int> <int>
1 ads 20 3 2
2 jwa 45 2 NA
3 mno 4 1 NA
4 ads 13 3 NA
5 jwa 60 2 15
6 ads 18 3 5

关于r - 通过基于 R 中的键减去值来创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774623/

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