19.06.2007, 10:01 | #41 |
Moderator
|
на заметку: конвертация времени
В таблице, которую выложил mazzy, есть поле dateline (колонка G), в которой содержится кол-во секунд от полуночи 01 января 1970 года (Unix time). При желании превратить его в нормальное время, более удобное для анализа, можно создать в этом файле Excel модуль VBA и поместить в него такую функцию:
Код: Function NormalDateFromUnix(ByVal unixTime As Long, ByVal GMT As Long) As Date NormalDateFromUnix = DateAdd("s", CDbl(unixTime + 3600 * GMT), DateSerial(1970, 1, 1)) End Function |
|
20.06.2007, 20:59 | #42 |
Moderator
|
AXFOREPAN - AXFOrum REPutation ANalyzer
Коллеги, ну, вот какой-то первый блин сошёл со сковородки. Хотя смотреть уже достаточно забавно - например, с удивлением узнал, что я, оказывается, был типа "чемпионом 2-го квартала 2006 года"
В прилагаемом архиве - файл Access в формате 2000 (т.е. mdb). Открыв его, сразу перейдите на закладку группы "Interface" и оперируйте на ней запросами 01-04 (см. рисунок в этом посте; а в следующих версиях и запросами с более высокими номерами: 05, 06 и т.д.). Первоначально в этом файле были заряжены данные, которые mazzy опубликовал 14.06.2007, 11:39. В дальнейшем по возможности будут обновляться и данные, и функционал (после буквы "v" в названии файла будет номер версии функционала, и далее в формате ГГГГММДД дата загруженных в файл данных по репутации). В общем, смотрите, анализируйте, придумывайте ещё какие-нибудь занятные запросы, которые можно было бы добавить в этот файл. P.S. Вот еще - для разжигания аппетита - чемпионы кварталов за всю не очень долгую пока историю репутации: 2005_q4 --- Maxim Gorbunov (75 очков за квартал) 2006_q1 --- Андре (72) 2006_q2 --- Gustav (77) 2006_q3 --- oip (90) 2006_q4 --- belugin (115) 2007_q1 --- kashperuk (174) 2007_q2 --- AndyD (пока 162 за этот неполный квартал) (P.S. от 10.08.07 и окончательно AndyD c результатом 178 ) |
|
|
За это сообщение автора поблагодарили: Lemming (2), oip (5). |
20.06.2007, 22:28 | #43 |
Axapta
|
Ха! Забавно, что пока нет ни одного двукратного победителя кварталов. А так же то, что AndyD оказывается пока еще ни разу не выигрывал.
|
|
21.06.2007, 12:57 | #44 |
Moderator
|
UP-DATE! Версия 2
Знаете ли вы, кто из участников набрал наибольшее количество очков репутации за один день? А какое сообщение получило больше всего очков? А хотели бы вы сразу еще и быстро посмотреть текст этого сообщения? Если есть хоть одно "да", то смотрите скорее внутрь zip-архива в сообщении выше. Добавлены запросы 05 и 06. НА ЗАМЕТКУ. Если кто-то не имеет опыта работы с Access, то обращаю его внимание на 6 волшебных кнопок на панели инструментов при открытом гриде запроса: 2 сортировочные, 3 фильтрационные и 1 поисковая - этакая "аптечка" аналитика (см. рисунок в этом посте, где эти кнопки обведены овалом). Особое внимание обращаю на первую из фильтрационных кнопок ("воронка с желтой молнией"). Это - фильтр по выделению. Очень удобная штука. Например, если вам надо отфильтровать из общего списка сообщений сообщения конкретного участника, то вы просто встаете на какую-нибудь строку в поле с именем этого участника и щелкаете эту кнопку. Т.е. всё происходит еще удобнее, чем в стандартном экселевском автофильтре, когда имя участника сначала надо найти в выпадающем списке. С этой кнопкой возможна еще более продвинутая работа, когда мышкой в поле выделяется толька часть символов значения (т.е. получается Like "*выделение*") |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
21.06.2007, 13:08 | #45 |
Участник
|
а что подразумевалось под beauty?
|
|
21.06.2007, 13:11 | #46 |
Участник
|
Цитата:
вдоль и поперек. |
|
21.06.2007, 13:17 | #47 |
Участник
|
ага. я тормоз.
в комментарии написано "репутации с именами и читабельным временем GMT+3" |
|
21.06.2007, 13:27 | #48 |
Moderator
|
ну "красота", конечно, "красавица".
Там есть исходная твоя таблица репутаций и я сначала пользовался ей (и всякие доп.значения вычислял на лету), но по мере обрастания мясом стало всё летаргически медленно шевелиться. И я сделал еще одну таблицу репутаций с суффиксом Beauty, куда сразу добавляю имена участников, перевожу юникс-дату в нормальную (GMT+3 без перехода на летнее время), конструирую гиперссылки и сразу расчитываю даты, месяцы и кварталы. Для заполнения этой таблицы после получении двух новых твоих (репы и участники) надо всего лишь один раз запустить макрос 00. Он перестроит "Бьюти" и дальше можно часами рассматривать запросы 01-06 (это я как бы пишу будущую инструкцию по самостоятельному использованию ) Цитата:
ну да, типа кэш такой |
|
21.06.2007, 13:32 | #49 |
Участник
|
слово "красота" применительно к данным как-то подозрительно звучит.
я поначалу задался вопросом "зачем автору нужны красивые данные?" и напрягся... |
|
21.06.2007, 13:48 | #50 |
Moderator
|
Цитата:
О! А сейчас еще пришло на ум слово "Arranged". Если б пришло вчера вечером, то, думаю, использовал бы его. |
|
21.06.2007, 14:05 | #51 |
Участник
|
|
|
21.06.2007, 19:13 | #52 |
Moderator
|
UPDATE! Версия 3
Добавлены запросы 07 и 08. Запрос 07 - все встречающиеся в таблице репутаций пары "одобряемый-одобряющий" и суммарные репутации каждой такой пары. Открыв этот запроc, удобно установить курсор либо в колонку username ("одобряЕМЫЙ"), либо в колонку whoaddedname ("одобряЮЩИЙ"), после чего щелкнуть по кнопке "Фильтр по выделению" для получения соответственно расклада: либо "из чьих суммарных вкладов других складывается общая репутация текущего участника", либо "как текущий участник одобряет других своими суммарными вкладами" (см. первый рисунок в этом посте). Если в паре участников "username <- whoaddedname" были взаимные респекты (в обоих направлениях), то для такой строки заполнены поля правых колонок (с цифрой "2" на конце наименования колонок) - это встречные репутации, где username2 = whoaddedname, а whoaddedname2 = username. Также в такой "взаимной" строке заполнено поле "score", которое содержит "счёт", напоминающий результат спортивной игры. Например, есть такая строка [username, whoaddedname, score] = ["Lemming", "mazzy", "12 : 2"]. Эту строку следует воспринимать так: Lemming получил от mazzy 12 очков репутации, а mazzy получил от Lemming 2 очка репутации. При этом в таблице также присутствует и "зеркальная" строка [username, whoaddedname, score] = ["mazzy", "Lemming", "2 : 12"] Запрос 08 - шахматка взаимных суммарных респектов (а-ля "турнирная таблица"). Односторонние респекты, пусть даже увесистые и многократные, в эту таблицу не включались. Т.е. критерий отбора записей из запроса 07, который лежит в основе запроса 08 - "score is not null". Интерпретировать результаты следует аналогично. Значение "12 : 2" на пересечении строки "Lemming" (поле "username") и колонки "mazzy" (да-да, именно такое поле - "mazzy" !) следует воспринимать по тому же принципу: Lemming получил от mazzy 12 очков репутации, а mazzy получил от Lemming 2 очка репутации. Т.е. тот, чья строка, получает от того, чей столбец, то, что ПЕРЕД двоеточием в этой строке; а тот, чей столбец, получает от того, чья строка, то, что ПОСЛЕ двоеточия в этой строке. Симметрично относительно диагонали из крестиков "XXXXXXXXX" расположено обратное значение: "2 : 12" (см. второй рисунок в этом посте). |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
21.06.2007, 19:25 | #53 |
Участник
|
Слушай.
А развей дальше эту идею, и получи таблицу репутаций пользователей, если исключить взаимную репутацию. Хотя, может это и неправильный показатель. Просто хочел получить пользователей, которые больше всего помогали другим, а не обменивались репутацией. Предполагаю, что fed будет на первом месте. интересно, как низко опущусь я? |
|
21.06.2007, 19:37 | #54 |
Участник
|
интересно, а почему встречная репутация "опускает"?
встречных репутаций в одной теме должно быть не так много. один помог другому в одной ветке, второй - в другой по другому поводу. почему опускает то? |
|
21.06.2007, 19:41 | #55 |
Участник
|
Цитата:
Сообщение от Gustav
Например, есть такая строка [username, whoaddedname, score] = ["Lemming", "mazzy", "12 : 2"]. Эту строку следует воспринимать так: Lemming получил от mazzy 12 очков репутации, а mazzy получил от Lemming 2 очка репутации. При этом в таблице также присутствует и "зеркальная" строка [username, whoaddedname, score] = ["mazzy", "Lemming", "2 : 12"]
А можно показать и количество одобрений? (в скобках например) |
|
21.06.2007, 19:46 | #56 |
Участник
|
и еще.
а можно ли как-то на основании этой шахматки определить группировки? группировка: несколько участников неравнодушных друг к другу. неравнодушный: дает положительную или отрицательную репутацию. помнится давным-давно в универе что-то такое мы про матрицы проходили... помнится там было достаточно как-то хитро пересортировать строки и колонки. |
|
21.06.2007, 19:49 | #57 |
Moderator
|
|
|
21.06.2007, 19:55 | #58 |
Участник
|
Наверное.
И еще. Насколько я вижу, безответных репутаций очень мало. А можно ли получить процент безответных? Как это сделать? Еще раз огромное спасибо. |
|
21.06.2007, 19:59 | #59 |
Участник
|
Ага. Я тормоз.
Цитата:
А как все-таки получить процент безответных? |
|
21.06.2007, 20:15 | #60 |
Moderator
|
Эта пара со счетом -3:0 есть потому, что Kamill_A трижды давал по -1, а Aleck -1 и +1, т.е. в сумме 0, но оборот (turnover) был. Это можно увидеть в "01 Query", т.е. фактически в исходной таблице, там где еще нет группировок (т.е. в исходной "Бьюти" ). Можно их поочередно найти, сделать по очереди "Фильтр по выделению" и это увидеть.
Самый простой способ оценить количество сейчас такой: открыть "07 Query". Там 2610 записей. Отсортировать по УБЫВАНИЮ колонку "score" - непустые значения встанут вверх. Прошуршать ПейджДауном вниз. На строке 440 будет последнее непустое значение. Таким образом процент безответных по количеству такой: (2610-440)/2610 = 83 %. Как-то так... |
|