#r #dataframe #nan #cosine-similarity #standardized
#r #фрейм данных #nan #косинусное сходство #стандартизированный
Вопрос:
Здравствуйте, уважаемое сообщество переполнения стека,
сегодня у меня снова есть вопрос к сообществу. Моя проблема в том, что у меня очень большой набор данных с различными парами взаимодействия. Одна из таких пар взаимодействий показана здесь в примере 1.
gt; dput(hau) structure(list(MEMBER_ID = c(6635622276, 6635622276, 10493988740, 10493988740, 6635622276, 6635622276, 6635622276, 6635622276, 6635622276, 6635622276, 6635622276, 6635622276, 10493988740, 6635622276, 6635622276, 6635622276, 6635622276, 6635622276, 6635622276, 10493988740, 6635622276, 6635622276, 6635622276, 6635622276, 10493988740, 10493988740, 10493988740, 6635622276, 6635622276 ), RATING = c(4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5), AUTHOR_ID = c(10493988740, 10493988740, 6635622276, 6635622276, 10493988740, 10493988740, 10493988740, 10493988740, 10493988740, 10493988740, 10493988740, 10493988740, 6635622276, 10493988740, 10493988740, 10493988740, 10493988740, 10493988740, 10493988740, 6635622276, 10493988740, 10493988740, 10493988740, 10493988740, 6635622276, 6635622276, 6635622276, 10493988740, 10493988740), STATUS = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), CREATION = c("2002/04/25", "2002/04/25", "2002/04/27", "2002/04/29", "2002/04/29", "2002/04/29", "2002/04/29", "2002/04/29", "2002/04/30", "2002/05/01", "2002/05/02", "2002/05/03", "2002/05/04", "2002/05/06", "2002/05/06", "2002/05/06", "2002/05/07", "2002/05/08", "2002/05/09", "2002/05/09", "2002/05/13", "2002/05/16", "2002/05/23", "2002/05/23", "2002/05/25", "2002/05/25", "2002/05/25", "2002/05/28", "2002/05/29"), LAST_MODIFIED = c("2002/04/25", "2002/04/25", "2002/04/27", "2002/04/29", "2002/04/29", "2002/04/29", "2002/04/29", "2002/04/29", "2002/04/30", "2002/05/01", "2002/05/02", "2002/05/03", "2002/05/04", "2002/05/06", "2002/05/06", "2002/05/06", "2002/05/07", "2002/05/08", "2002/05/09", "2002/05/09", "2002/05/13", "2002/05/16", "2002/05/23", "2002/05/23", "2002/05/25", "2002/05/25", "2002/05/25", "2002/05/28", "2002/05/29"), Pair_ID = c(2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L, 2934188L )), row.names = c(NA, -29L), class = c("data.table", "data.frame" ), .internal.selfref = lt;pointer: 0x7ff2e9814ce0gt;)
Теперь проблема в том, что я часто получаю значения NaN после вычисления z-баллов. Причина этого мне известна. Пользователи, для которых отображается NaN, всегда имеют одинаковые значения, поэтому стандартное отклонение равно 0, и поэтому z-оценка не может быть рассчитана. Поэтому мой вопрос заключается в следующем:
Как обрабатываются значения NaN в таком контексте? Должен ли я считать это нулем?
MEMBER_ID RATING AUTHOR_ID STATUS CREATION LAST_MODIFIED Pair_ID 1: 6635622276 -3.0895719 10493988740 0 2002/04/25 2002/04/25 2934188 2: 6635622276 -3.0895719 10493988740 0 2002/04/25 2002/04/25 2934188 3: 10493988740 NaN 6635622276 0 2002/04/27 2002/04/27 2934188 4: 10493988740 NaN 6635622276 0 2002/04/29 2002/04/29 2934188 5: 6635622276 0.3089572 10493988740 0 2002/04/29 2002/04/29 2934188 6: 6635622276 0.3089572 10493988740 0 2002/04/29 2002/04/29 2934188 7: 6635622276 0.3089572 10493988740 0 2002/04/29 2002/04/29 2934188 8: 6635622276 0.3089572 10493988740 0 2002/04/29 2002/04/29 2934188 9: 6635622276 0.3089572 10493988740 0 2002/04/30 2002/04/30 2934188 10: 6635622276 0.3089572 10493988740 0 2002/05/01 2002/05/01 2934188 11: 6635622276 0.3089572 10493988740 0 2002/05/02 2002/05/02 2934188 12: 6635622276 0.3089572 10493988740 0 2002/05/03 2002/05/03 2934188 13: 10493988740 NaN 6635622276 0 2002/05/04 2002/05/04 2934188 14: 6635622276 0.3089572 10493988740 0 2002/05/06 2002/05/06 2934188 15: 6635622276 0.3089572 10493988740 0 2002/05/06 2002/05/06 2934188 16: 6635622276 0.3089572 10493988740 0 2002/05/06 2002/05/06 2934188 17: 6635622276 0.3089572 10493988740 0 2002/05/07 2002/05/07 2934188 18: 6635622276 0.3089572 10493988740 0 2002/05/08 2002/05/08 2934188 19: 6635622276 0.3089572 10493988740 0 2002/05/09 2002/05/09 2934188 20: 10493988740 NaN 6635622276 0 2002/05/09 2002/05/09 2934188 21: 6635622276 0.3089572 10493988740 0 2002/05/13 2002/05/13 2934188 22: 6635622276 0.3089572 10493988740 0 2002/05/16 2002/05/16 2934188 23: 6635622276 0.3089572 10493988740 0 2002/05/23 2002/05/23 2934188 24: 6635622276 0.3089572 10493988740 0 2002/05/23 2002/05/23 2934188 25: 10493988740 NaN 6635622276 0 2002/05/25 2002/05/25 2934188 26: 10493988740 NaN 6635622276 0 2002/05/25 2002/05/25 2934188 27: 10493988740 NaN 6635622276 0 2002/05/25 2002/05/25 2934188 28: 6635622276 0.3089572 10493988740 0 2002/05/28 2002/05/28 2934188 29: 6635622276 0.3089572 10493988740 0 2002/05/29 2002/05/29 2934188
Огромное спасибо,
Себастьян
Комментарии:
1. Ваш вопрос немного неясен, но почему бы просто не удалить участника с
NaN
s? ПосколькуNaN
это связано с тем, что участник дает одинаковый балл за все/один, казалось бы, вы могли бы легко удалить их.