У меня есть некоторый код, который работает, когда мои значения имеют только один уровень фактора в столбце "short_desc".Он принимает значение «Value» и выводит соответствующий диапазон децилей в столбце «Value.fc».
Data.frame перед манипуляцией выглядит следующим образом:
Я применяю эти строки кода к кадру данных "df":
df <- df %>%
mutate(Value.fc = cut2(Value, g=10),
Value.fc = factor(sapply(str_extract_all(Value.fc, "\\d+"),
function(x) paste(x, collapse="-"))),
Value.fc = reorder(Value.fc, Value))
И в результате получается столбец "Value.fc", который представляет собой диапазоны децильных коэффициентов:
Проблема возникает, когда столбец "short_desc" имеет много уровней.
Я не могу подстановить наблюдения к "short_desc" и применитькод для получения дециля каждого подмножества "Value.fc".Результирующие диапазоны децильных коэффициентов неверны.Я использовал следующий код:
df <- df %>%
group_by(short_desc) %>%
mutate(Value.fc = cut2(Value, g=10),
Value.fc = factor(sapply(str_extract_all(Value.fc, "\\d+"),
function(x) paste(x, collapse="-"))),
Value.fc = reorder(Value.fc, Value)) %>%
ungroup()
Полученный кадр данных выглядит следующим образом:
Будем благодарны за любые указания.Пример данных:
dput(head(df)) structure(list(state = c("Iowa", "Iowa", "Illinois"), short_desc = c("Corn, grain - yield, measured in bu / acre", "Corn, silage - yield, measured in tons / acre", "Corn, grain - yield, measured in bu / acre"), Value = c(137.8, 13.5, 153.3), FIPS = c("19001", "19001", "17001"), Value.fc = c("135-0-150", "13-0-14-5", "150-4-157"))