Ниже приведен пример моего набора данныхПерестройка кадр данных с помощью настраиваемого техники
df1<- read.table(text=" Month Crime
2010-12 Anti-social-behaviour
2010-12 Anti-social-behaviour
2010-12 Anti-social-behaviour
2010-12 Robbery
2010-12 Robbery
2010-12 Violent-Crime
2010-12 Violent-Crime
2010-12 Theft
2011-01 Anti-social-behaviour
2011-01 Anti-social-behaviour
2011-01 Anti-social-behaviour
2011-01 Anti-social-behaviour
2011-01 Arson
2011-01 Arson
2011-01 Theft
2011-01 Theft
2011-01 Theft
2011-01 Theft
2011-01 Theft", header=TRUE)
Я намеревался превратить его в следующем формате, чтобы иметь возможность анализировать ее.
Month Crime Frequency
2010-12 Anti-social-behaviour 3
2010-12 Robbery 2
2010-12 Violent Crime 2
2010-12 Theft 1
2011-01 Anti-social behaviour 4
2011-01 Arson 2
2011-01 Theft 5
Поскольку я не был знаком с пакетами перекроить, и я хотел, чтобы обучить себя на использовании базовых функций, я сформулировал свой собственный подход:
#convert months to factor
crimeData3$Month<- factor(crimeData3$Month, ordered=TRUE)
#calculate instances of each factor level
instances<- table(crimeData3$Month)
mySeq<- numeric(0)
myseqFinal<- numeric(0)
#append letters to each crime for each factor level, to identify crimes at month-level
for (i in 1:length(instances)){
mySeq<- rep(LETTERS[i], times=instances[i])
myseqFinal<- c(myseqFinal,mySeq)
}
crimeData3$CrimeNew<- paste(crimeData3$Crime, myseqFinal, sep=" ")
crimeData3$CrimeNew<- factor(crimeData3$CrimeNew, ordered=TRUE)
То, что я надеялся сделать после того, как это было рассчитать частоту каждого преступления. Поскольку все преступления были однозначно отмечены на уровне месяца, я подумал, что будет легко рассчитать частоту и просто добавить результаты в том же порядке к новому кадру данных.
Однако, как только я применяю функцию таблицы к crimeData3 $ Crime, порядок совершения преступления перепутался.
Есть ли другой, более простой подход? Может ли мой код манипулировать, чтобы обеспечить решение? Я был бы признателен за любую помощь, используя базовые функции, а также специализированные.
Большое спасибо.
Возможно, вы ищете 'данные .frame (таблица (df1)) '? – A5C1D2H2I1M1N2O1R2T1
Ой! Как элегантно! Я бы никогда об этом не думал; Я использовал только таблицу для отдельных столбцов/строк! –
Если у вас есть какая-либо критика/совет/комментарий, чтобы добавить о моем коде тоже, это было бы от вас. –