假设我有这个数据帧(“数字”变量也来自原始数据帧中的字符类型):
df <- data.frame(
id = c(1,2,2,1,2),
number = c(30.6, "50.2/15.5", "45/58.4", 80, "57/6"))
df$number <- as.character(df$number)
Run Code Online (Sandbox Code Playgroud)
现在我想添加另一列,其中包含每个 ID 的累积总和,我使用 执行此操作df %>% mutate(csum = ave(number, id, FUN=cumsum))
,它适用于单个数字,但当然不适用于用“/”分隔的数字。我怎么解决这个问题?
最终的数据框应该是这样的:
df2 <- data.frame(
id = c(1,2,2,1,2),
number = c(30.6, "50.2/15.5", "45/58.4", 80, "57/6"),
csum = c(30.6, "50.2/15.5", "95.2/73.9", 110.6, "152.2/79.9"))
df2
Run Code Online (Sandbox Code Playgroud)