Dataframe создает несколько строк на основе набора результатов - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть фрейм данных, в котором есть столбец со значением 3898000. Мне нужно создать еще один фрейм данных, в котором будет 10 строк, в которых я вычтю 1000 из моего значения в первом фрейме данных.итоговый второй фрейм данных будет иметь

3888000
3889000
3890000
3891000
3892000
3893000
3894000
3895000
3896000
3897000

Я новичок в R ... вот почему я борюсь с этим.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Вы можете использовать seq(), чтобы создать последовательность, начинающуюся с 1000 и увеличивающуюся на 1000 для каждой строки в dplyr::data_frame().dplyr::mutate() используется для вычитания последовательности из исходного столбца и помещения результата в новый столбец:

library(dplyr)

data_frame(v1 = rep(3898000, 10)) %>%
  mutate(v2 = v1 - seq(1000, 1000*nrow(.), 1000))

#        v1      v2
#     <dbl>   <dbl>
# 1 3898000 3897000
# 2 3898000 3896000
# 3 3898000 3895000
# 4 3898000 3894000
# 5 3898000 3893000
# 6 3898000 3892000
# 7 3898000 3891000
# 8 3898000 3890000
# 9 3898000 3889000
# 10 3898000 3888000

dplyr::select() может использоваться для создания data_frame только с новыми значениями.

0 голосов
/ 25 сентября 2018

Предположим, вы извлекли номер цели из первой таблицы.Здесь мы создаем новую таблицу с одним столбцом, заполненную последовательностью, где каждая следующая строка на 1000 меньше, чем предыдущая строка.(Обратите внимание, что OP показывает восходящую последовательность, которая будет использовать 1000 вместо -1000 ниже.)

result_extracted_from_table <- 3898000

new_table <- data.frame(
  my_column = seq(from = result_extracted_from_table, 
  by = -1000, length.out = 10)
)

Выход:

new_table
   my_column
1    3898000
2    3897000
3    3896000
4    3895000
5    3894000
6    3893000
7    3892000
8    3891000
9    3890000
10   3889000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...