У меня есть следующий кадр данных в R:неразъемные список, слияние факторов
c1 c2
1 10 a
2 20 a
3 30 b
4 40 b
Я тогда split
его следующим образом: z = lapply(split(test$c1, test$c2), function(x) {cut(x,2)})
. z
затем:
$a
[1] (9.99,15] (15,20]
Levels: (9.99,15] (15,20]
$b
[1] (30,35] (35,40]
Levels: (30,35] (35,40]
Я хотел бы, чтобы затем объединить факторы назад unsplitting список unsplit(z, test$c2)
. Это генерирует предупреждение:
[1] (9.99,15] (15,20] <NA> <NA>
Levels: (9.99,15] (15,20]
Warning message:
In `[<-.factor`(`*tmp*`, i, value = 1:2) :
invalid factor level, NAs generated
Я хотел бы взять объединение всех уровней факторов, а затем неразбитый так, что эта ошибка не бывает:
z$a = factor(z$a, levels=c(levels(z$a), levels(z$b)))
unsplit(z, test$c2)
[1] (9.99,15] (15,20] (30,35] (35,40]
Levels: (9.99,15] (15,20] (30,35] (35,40]
В моей реальной фрейме данных у меня есть очень большой список, поэтому мне нужно перебрать все элементы списка (а не только два). Каков наилучший способ сделать это?
Да, это именно то, что я хотел сделать. Большое вам спасибо за вашу помощь! для -Alex- – Alex