【发布时间】:2015-10-26 13:21:51
【问题描述】:
我的问题与this post 类似,但不同之处在于不是用全0 替换每个组/id 中的最后一个值,而是使用不同的值替换每个组/id 中的最后一个值。
这是一个例子(我从上面的链接中借来的):
id Time
1 1 3
2 1 10
3 1 1
4 1 0
5 1 9999
6 2 0
7 2 9
8 2 500
9 3 0
10 3 1
在上面的链接中,每个组/ID 中的最后一个值被零替换,使用如下:
df %>%
group_by(id) %>%
mutate(Time = c(Time[-n()], 0))
输出是
id Time
1 1 3
2 1 10
3 1 1
4 1 0
5 1 0
6 2 0
7 2 9
8 2 0
9 3 0
10 3 0
就我而言,我希望将每个组/ID 中的最后一个值替换为不同的值。最初,每个组/ID 中的最后一个值是9999、500 和1。现在我想:9999被5替换,500被12替换,1被92替换。所需的输出是:
id Time
1 1 3
2 1 10
3 1 1
4 1 0
5 1 5
6 2 0
7 2 9
8 2 12
9 3 0
10 3 92
我试过这个:
df %>%
group_by(id) %>%
mutate(Time = replace(Time, n(), c(5,12,92))),
但它不起作用。
【问题讨论】:
-
请提供示例数据和代码。 stackoverflow.com/questions/5963269/…
-
您不能将多个值插入到一个值中。正如@scoa 指出的那样,您应该提供一个可重现的示例和您想要的输出
-
@goren9 你是杰森吗?如果不是,你为什么要重写他的问题?
-
无论如何,既然问题是有道理的,就投票重新开放。
-
非常感谢,弗兰克。
标签: r data.table dplyr