Таблица взаимодействий – случай с домашними животными и домами

У меня есть список домов и список видов животных.

houses = c(1,1,2,3,4,4,4,4,5,6,5) animals = c('cat','dog','cat','dog','rat', 'cat', 'spider', 'snake', 'cat', 'cat', 'rat') 

Я пытаюсь создать функцию, которая возвращает верхнюю треугольную таблицу, которая указывает для каждого питомца, количество раз, которое, как было замечено, живет в том же доме, что и другие виды животных. Имеет ли это смысл?

Для приведенного выше примера таблица должна выглядеть так (надеюсь, что нет ошибки!):

  dog rat spider snake cat 1 2 1 1 dog 0 0 0 rat 1 1 spider 1 

Примечание. Эта функция должна работать для любых двух векторов одинаковой длины, независимо от того, содержат ли они числа или строку

Использовать table и crossprod :

 out <- crossprod(table(houses, animals)) out[lower.tri(out, diag=TRUE)] <- NA out # animals # animals cat dog rat snake spider # cat NA 1 2 1 1 # dog NA NA 0 0 0 # rat NA NA NA 1 1 # snake NA NA NA NA 1 # spider NA NA NA NA NA 

Поскольку выход представляет собой matrix вы можете подавить печать значений NA непосредственно в print :

 print(out,na.print="") # animals # animals cat dog rat snake spider # cat 1 2 1 1 # dog 0 0 0 # rat 1 1 # snake 1 # spider 
Interesting Posts

Windows: хорошая, простая потоковая передача музыки?

Существуют ли платформы, где указатели на разные типы имеют разные размеры?

Существуют ли какие-либо преимущества для работы 64-разрядной ОС на 4 ГБ ОЗУ?

Как #include работает в C ++?

Каково точное использование MAC-адреса?

Как отключить миграцию в Entity Framework 6.0

Использовать инструмент командной строки для использования другого интерфейса?

Является ли Task.Result тем же, что и .GetAwaiter.GetResult ()?

Создание продукта SDK: как добавить собственный lib (.so) и банку с SDK, который я создаю?

Инъекция зависимостей и шаблон Singleton Design

Jq, чтобы заменить текст непосредственно на файл (например, sed -i)

Объединить атрибуты CSS и псевдоэлементы?

Правильный способ передачи нескольких значений для одного имени параметра в запросе GET

Как включить пользовательскую несистемную папку под этим ПК в Windows 8.1?

Настройка spinner onClickListener () в Android

Давайте будем гением компьютера.