Добавление результата цикла в кадр данных в R - PullRequest
1 голос
/ 03 ноября 2019

Привет, я новичок в изучении R.

Я запускаю цикл, чтобы узнать количество людей на основе их региона и значение "v" в указанном ниже фрейме данных. Я хотел бы сохранить результат цикла в фрейме данных, чтобы я мог работать с ним. Спасибо за вашу помощь.

data<-data.frame(x=rep(c("man", "woman"),500),reg=rep(1:5, 200), v=c(seq(100,1,length.out = 500),c(seq(1,100,length.out = 500))))

for (i in seq(0, 100, 10)) {

  print(paste("interval <", i, "-", i+10,">"))
  data %>% 
    filter(data$x == "man" & data$v >= i & data$v <= i +10) %>%   
    group_by(Region = reg) %>% 
    summarize(No_man = n()) %>%
    as.data.frame() %>%
    print()
  if (i+10 > 90) {break}
}

1 Ответ

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

Я не думаю, что вам нужен цикл for - мы можем использовать cut для создания интервалов внутри mutate вызова:

library(dplyr)

res <- 
data %>% 
  filter(v <= 100 & x == "man") %>% 
  mutate(Interval = cut(v, seq(0, 100, 10))) %>% 
  group_by(Region = reg, Interval) %>% 
  tally() %>% 
  ungroup()

head(res)
## A tibble: 6 x 3
#  Region Interval     n
#   <int> <fct>    <int>
#1      1 (0,10]       9
#2      1 (10,20]     10
#3      1 (20,30]     10
#4      1 (30,40]     10
#5      1 (40,50]     10
#6      1 (50,60]     10

Поверьте, это ваш ожидаемый результат.

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