如何在R中创建序列?

问题描述 投票:0回答:1

我知道R中有一个函数可以创建序列,但不能完全满足我的需求。

我有一个数据框架,每次运行代码时,其大小都会改变。这是我的数据框

 pais   cum_cases  time_cases  
 MX        1            1
 MX        4            2
 MX        5            6
....

我想将列cum_cases的值替换为将值加倍的序列。例我真的不在乎列[开头,则列的所有下一个值必须替换为

cum_cases 10 20 40 80 160 320 ... Until the last row of my data frame
示例2。x-> 6

cum_cases 6 12 24 48 96 192 ... Until the last row of my data frame

r dataframe data-science sequence series
1个回答
0
投票
您需要将起始值(第一行)乘以2乘以rowid - 1的幂,因为该值每行都会加倍。用dplyr执行此操作的方法是:

df <- data.frame(time_cases = c(1, 2, 6, 10, 11, 15), cum_cases = 6) library(dplyr) df %>% tibble::rowid_to_column() %>% mutate(cum_cases = cum_cases[1] * 2 ^ (rowid - 1)) %>% select(-rowid) time_cases cum_cases 1 1 6 2 2 12 3 6 24 4 10 48 5 11 96 6 15 192

我先用rowid创建一个tibble::rowid_to_column(),然后再将其删除。
© www.soinside.com 2019 - 2024. All rights reserved.