У меня огромный фрейм данных, образец из 3 столбцов и 11 строк приведен ниже:
df <- structure(list(A = c(61960, 273, 439, 38877, 75325, 80929,
23028, 57240, 10140, 25775, 7286), B = c(10, 12, 11, 13, 2, 1, 1,
1, 1, 1, 1), C = c(122, 140, 163, 12, 190, 16, 14, 18, 15, 17, 16
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-11L))
Для каждого столбца фрейма данных я хотел бы рассчитать среднее число значащих цифр для каждого порядка в этом столбце.
Так, например, для вышеприведенного столбца A присутствуют 3 порядка (10 ^ 3, 10 ^ 4, 10 ^ 5). Первое число имеет 4 цифры (последний ноль не считается), второе - 3 и т. Д.
Мой вывод должен представлять собой список для каждого столбца с одним элементом - вектором, содержащим порядки величин, а вторым - срединное число значащих цифр.
Таким образом, для каждого столбца, который я ожидаю список, мой вывод будет список списков. Например, для столбца A:
L[["A"]] = list(c(5,4,3), c(5, 4, 3))
Почему этот список? В столбце А есть 3 различных порядка: 10 ^ 5, 10 ^ 4, 10 ^ 3. Среднее число значащих цифр для 10 ^ 5 часов утра составляет 5, для 10 ^ 4, 4 и для 10 ^ 3, 3.
Есть ли способ сделать это эффективно? с чем-то вроде mutate
или map
(не apply
, потому что это будет то же самое, что и использование цикла).