и спасибо уже за тонну статей о моей (еще не заданной) проблеме, которая доставила меня еще дальше!R: подсчет нескольких вхождений строк в несколько столбцов (!)
Но все-таки, я не могу помочь, но поднять еще один из этих вопросов подсчета:
У меня есть большой набор данных, около 30 000 строк и пяти столбцов, наполненных именами. Всего в df имеется около 14 000 разных имен. Теперь меня интересует совпадение имен в строке, но независимо от того, находится ли имя в столбце 1,2,3 и так далее.
В качестве примера матрица может выглядеть следующим образом (вероятно, ужасно закодированы):
testmatrix<- matrix(nrow=52, ncol=5)
for (i in 1:5) {
testmatrix[,i]<-(sample(letters, replace=T))
}
data<-as.data.frame(testmatrix)
Моя последняя матрица должна затем иметь (в тестовом примере) 26 строк и 26 столбцов (в «реальной» набора данных 14 000 × 14 000), со всеми сопутствующими событиями. Я мог бы работать с aggregate
(я думал), но тогда мне пришлось бы создавать множество dfs для каждой колонки-диады (1-2, 1-3, 1-4 и т. Д.) - возможно, есть уникальная и более простая функция для этого (возможно, даже в пакете plyr?).
Спасибо всем уже, я надеюсь, что это легко для вас;)
Бест, Al
Ваш код не работает, вы хотите 'testmatrix [, i] <- sample (буквы, 5, replace = T) '. Кроме того, я не совсем понимаю, как должен выглядеть вывод. Что должно быть в строках и столбцах искомой матрицы? – Henrik
Привет, Хенрик, спасибо за быстрый ответ! И извините за неправильный код (у меня был более короткий пример с 52 строками, т. Е. Кратным 26 букв). Результат должен иметь каждое уникальное имя как переменные (например, столбцы) и строки для каждого уникального имени. - Клетки должны быть заполнены частотой совместного взаимодействия каждой диады в ряду исходного df. - В примере df он должен создать матрицу 26x26 для каждой буквы с частотой каждой диады в соответствующих ячейках. Это яснее? Еще раз спасибо! –
Непонятно. покажите желаемый результат в небольшом примере. например, матрица из 3 строк, 4 столбца с 6 буквами – agstudy