Я совершенно новой для R и есть вопрос о петляхдвойная петля в R
В моей реальных данных там 7000 наблюдений в 80 странах с 15 секторами и 6 типов организаций, но здесь это упрощенный пример.
country <- c("a","a","a","a","a","a","b","b","b","b","b","b",
"c","c","c","c","c","c","d","d","d","d","d","d")
sector <- c("a","a","a","b","c","c","a","b","b","b","c","c",
"b","b","b","b","c","c","a","a","b","b","c","c")
organization <-c("a","b","c","c","b","a","a","b","b","c","b","b",
"c","a","a","b","b","c","c","b","a","a","b","c")
budget <-c(2,4,3,5,9,7,5,4,3,6,1,2,4,5,6,1,5,3,4,2,3,5,4,6)
table <- data.frame(country, sector, organization, budget)
Что я хочу:
- Количество различных типов организаций в конкретной отрасли в конкретной стране.
- Процент от общего бюджета в секторе, предоставляемого различным организациям.
я сначала должен сделать подмножество выбрать только данные из страны «а» и сектор «а»
smalltable <-subset(table, (country == "a") & (sector == "a"))
, а затем ответить на мой первый вопрос, сколько из каждого типа организации в сектор в стране
smalltable$count <- table(smalltable$organization)
то мне нужно найти процент финансов
smalltable$percentage <- smalltable$budget/sum(smalltable$budget)
тогда я использовал tapply
N <- tapply(smalltable$count, smalltable$organization, FUN=sum)
financialshare <- tapply(smalltable$percentage, smalltable$organization, FUN=sum)
и, наконец, в сочетании это:
total <- data.frame (smalltable$country,smalltable$sector,smalltable$organization, N,financialshare)
total
Это маленький столик, что я требую!
Но мне это нужно для всех моих 15 секторов и во всех 80 странах, поэтому мне нужна какая-то функция цикла, которая запускает цикл всех секторов и повторяет этот цикл для каждой страны. Мне нужно сделать эти таблицы максимально сжатыми, объединив всю информацию о 1 стране (так 15 секторов) в одну таблицу. Также необходимо удалить из таблиц нулевые значения, чтобы сэкономить место.
Как мне нужно продолжить?
Да, но со всеми секторами в определенной стране в одном кадре. Таким образом, для образца я хотел бы иметь 4 специфичных для конкретной страны данных для передачи в excel – user1466195