R: Показать значение ячейки столбца на основе значения строки в каждом цикле - PullRequest
0 голосов
/ 09 октября 2018

У меня есть следующий фрейм данных

glimpse(Sample)
Observations: 4
Variables: 5
$ Product     <chr> "A", "B", "C", "D"
$ Revenues    <dbl> 50, 25, 15, 10
$ Quantity    <dbl> 40, 30, 20, 10
$ RevenueCum  <dbl> 50, 75, 90, 100
$ QuantityCum <dbl> 40, 70, 90, 100

Я хочу использовать цикл for для отображения каждой строки для столбцов один за другим. Однако мой код печатает все значения для столбцов в каждой итерации.

length=nrow(Sample)
for (i in 1:length)
{print(i)
  Sample %>%select(Revenues, Quantity) %>%  print(Revenues[i-1]," ",Revenues[i]," ",Quantity[i-1]," ",Quantity[i])
 print(i)

}

Вот результат, который я получаю:

[1] 1
# A tibble: 4 x 2
  Revenues Quantity
     <dbl>    <dbl>
1       50       40
2       25       30
3       15       20
4       10       10
[1] 1
[1] 2
# A tibble: 4 x 2
  Revenues Quantity
     <dbl>    <dbl>
1       50       40
2       25       30
3       15       20
4       10       10
[1] 2
[1] 3
# A tibble: 4 x 2
  Revenues Quantity
     <dbl>    <dbl>
1       50       40
2       25       30
3       15       20
4       10       10
[1] 3
[1] 4
# A tibble: 4 x 2
  Revenues Quantity
     <dbl>    <dbl>
1       50       40
2       25       30
3       15       20
4       10       10
[1] 4
> 

РЕДАКТИРОВАТЬ: что я планирую сделать, это распечатать ggplot, чтобы я мог использовать эти необходимые значенияВыручка и количество, чтобы добавить прямоугольник на каждой итерации цикла for.На каждой итерации эти значения будут использоваться как четыре координаты прямоугольника.

1 Ответ

0 голосов
/ 09 октября 2018

Похоже, вы движетесь в этом направлении.

library(tidyverse)

# Sample data
sample <- data.frame(
  stringsAsFactors = F,
  Product = c(LETTERS[1:4]),
  Revenues = c(50, 25, 15, 10),
  Quantity = c(40, 30, 20, 10)
) %>%
  mutate(RevenueCum = cumsum(Revenues),
         QuantityCum = cumsum(Quantity))


# Add prior totals and set as zero where not available
sample_shapes <- sample %>%
  mutate(RevenueCum_prior = lag(RevenueCum, default = 0),
         QuantityCum_prior = lag(QuantityCum, default = 0))

# Plot
ggplot(sample_shapes, aes(xmin = QuantityCum_prior, ymin = RevenueCum_prior, 
                          xmax = QuantityCum, ymax = RevenueCum, fill = Product)) +
  geom_rect() +
  labs(x = "Cumulative Quantity",
       y = "Cumulative Revenue")

enter image description here

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