У меня есть длинный список авторов и слов что-то вродеРасчет пересечения большого количества множеств в R
author1,word1
author1,word2
author1,word3
author2,word2
author3,word1
Фактический список насчитывает сотни авторов и тысячи слов. Он существует в виде CSV-файл, который я прочитал в dataframe и дублированный как
> typeof(x)
[1] "list"
> colnames(x)
[1] "author" "word"
последние битый dput (головка (х)) выглядит
), class = "factor")), .Names = c("author", "word"), row.names = c(NA,
6L), class = "data.frame")
То, что я пытаюсь сделать так, чтобы рассчитать, насколько похожи списки слов между авторами на основе пересечения списков слов автора в процентах от общего словаря авторов. (Я уверен, что есть правильные условия для того, что я делаю, но я не совсем понимаю, что это такое.)
В python или perl я бы сгруппировал все слова по автору и использовал вложенные циклы, чтобы сравнить всех со всеми, но мне интересно, как я это сделаю в R? У меня такое чувство, что «использование применяется» будет ответом - если это возможно, вы можете объяснить это маленькими словами для новичков, подобных мне?
Это не описание, которое имеет одно основное представление. Вероятно, это список, как вы говорите, но структура не очевидна. Можете ли вы отредактировать сообщение, чтобы включить вывод 'dput (head (list_name))'? –
Вы могли бы также найти [этот пост] (http://stackoverflow.com/questions/19891278/r-table-of-interactions-case-with-pets-and-houses) полезным; 'tcrossprod (таблица (x))/rowSums (таблица (x))'. –
Спасибо alexis- но tcrossprod() работает только с равным количеством строк и столбцов, не так ли? – rw950431