Я использую функцию cut
, чтобы разделить мои данные на группы, используя диапазон макс / мин.Вот пример кода, который я использую:
# sample data frame - used to identify intial groups
testdf <- data.frame(a = c(1:100), b = rnorm(100))
# split into groups based on ranges
k <- 20 # number of groups
# split into groups, keep code
testdf$groupCode <- cut(testdf$b, breaks = k, labels = FALSE)
# store factor information
testdf$group <- cut(testdf$b, breaks = k)
head(testdf)
Я хочу использовать идентифицированные группировки факторов, чтобы разделить другой кадр данных, но я не уверен, как использовать факторы, чтобы справиться с этим,Я думаю, что моя структура кода должна быть примерно такой:
# this is the data I want to categorize based on previous groupings
datadf <- data.frame(a = c(1:100), b = rnorm(100))
datadf$groupCode <- function(x){return(groupCode)}
Я вижу, что данные фактора имеют следующую структуру, но я не знаю, как правильно их использовать:
testdf$group[0]
factor(0)
20 Levels: (-2.15,-1.91] (-1.91,-1.67] (-1.67,-1.44] (-1.44,-1.2] ... (2.34,2.58]
Две функции, с которыми я экспериментировал (но которые не работают):
# get group code
nearestCode <- function( number, groups ){
return( which( abs( groups-number )== min( abs(groups-number) ) ) )
}
nearestCode(7, testdf$group[0])
А также экспериментировали с функцией which
.
which(7, testdf$group[0])
Каков наилучший способ идентификации групп и применения их к другому фрейму данных?