В R: Как создать столбец так, чтобы было начальное значение, и каждое следующее значение является предыдущим плюс целое число набора - PullRequest
0 голосов
/ 03 января 2019

Я прошу прощения, если это повторяющийся вопрос для других в списке ... Я посмотрел и посмотрел и попробовал несколько идей, но не могу найти работающего ответа.

У меня есть столбец «Ожидаемый» в списке TFAOS с несколькими столбцами.

изменить: датафрейм:
пациенты <- с (1:17) <br> Ожидаемый <- c (0) <br> TFAOS <- data.frame (пациенты, ожидаемые) <br>

Ожидаемое должно быть:

Ожидается
17/24
предыдущее значение + 17/24
предыдущее значение + 17/24
и т. д. для 17 рядов

ИЛИ ЭКВИВАЛЕНТ:

Ожидается
17/24 * 1
17/24 * 2
17/24 * 3
и т. д. для 17 рядов

Может кто-нибудь помочь с простым решением?

Я пробовал:
TFAOS [1,2] = 17/24
TFAOS [2:17, 2] = TFAOS $ Ожидается [-1] + 17/24

И

mutate (TFAOS, Ожидаемый = 17/24 + лаг (Ожидаемый, по умолчанию = 0))

Они оба дают одинаковое значение 17/24 для каждой строки.



Огромное спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 03 января 2019

Не совсем уверен, что я отвечаю на ваш вопрос, но этот код примет начальное значение, длину вектора и размер шага и даст вам вектор, который начинается с начального значения и увеличивается на размер шага (возможно, целое число) в каждом последующем элементе.

out_length <- 10 # length of the vector you want
increment <- 4 # amount to increment in each step
initial <- 3 # starting value
(0:(out_length - 1))*increment + initial # the desired vector
[1]  3  7 11 15 19 23 27 31 35 39
0 голосов
/ 03 января 2019

Вот еще один способ использования ваших данных:

# package load
library(tidyverse)

# data
patients <- c(1:17) 
Expected <- c(0) 
TFAOS <- data.frame(patients, Expected)

# constant to add
myconstant <- 17/24


# mutate
TFAOS <- TFAOS %>%
    mutate(Expected = Expected + (patients - 1) * myconstant)

print(TFAOS)
0 голосов
/ 03 января 2019

Вы можете попробовать mutate(Expected = 1:n()*17/4 )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...