R 根据现有数据添加新列
我有一个数据看起来是这样的 df 现在,我想根据如下所示的值添加一个新列R 根据现有数据添加新列,r,R,我有一个数据看起来是这样的 df 现在,我想根据如下所示的值添加一个新列 --------------------------- id value from to --------------------------- 1 a a e --------------------------- 1 b a e ----------------------
---------------------------
id value from to
---------------------------
1 a a e
---------------------------
1 b a e
---------------------------
1 c a e
---------------------------
1 d a e
---------------------------
1 e a e
---------------------------
2 a a c
---------------------------
2 b a c
---------------------------
2 c a c
---------------------------
我不知道答案是否已经可用。如果答案已经可用,请向我提供链接,您可以使用
ave
,以及head
(第一个)和tail
(最后一个),即
您可以使用
ave
,以及head
(第一个)和tail
(最后一个),即
另一个使用dplyr的解决方案是:
library(dplyr)
df %>%
group_by(id) %>%
mutate(from = first(value), to = last(value))
id value from to
1 a a e
1 b a e
1 c a e
1 d a e
1 e a e
2 a a c
2 b a c
2 c a c
另一个使用dplyr的解决方案是:
library(dplyr)
df %>%
group_by(id) %>%
mutate(from = first(value), to = last(value))
id value from to
1 a a e
1 b a e
1 c a e
1 d a e
1 e a e
2 a a c
2 b a c
2 c a c
是的,我是在你编辑你的文章以包含dplyr位时写的,我想我从我的文章中删除了dplyr解决方案,这样你也可以保留你的。是的,我是在你编辑你的文章以包含dplyr位时写的,我想我从我的文章中删除了dplyr解决方案,这样你也可以保留你的。
library(data.table)
setDT(df)[, c('from', 'to') := list(data.table::first(value), data.table::last(value)), by = id][]
library(dplyr)
df %>%
group_by(id) %>%
mutate(from = first(value), to = last(value))
id value from to
1 a a e
1 b a e
1 c a e
1 d a e
1 e a e
2 a a c
2 b a c
2 c a c