Я пытаюсь создать разреженную матрицу, в которой для каждой строки есть максимум n записей, каждый из которых является целым числом в определенном диапазоне, который я мог бы затем использовать в качестве матрицы смежности для анализа социальной сети.Например, матрица 80X80, где каждая строка имеет 10 или меньше записей, которые являются целыми числами от 1-4.Цель состоит в том, чтобы представить данные, которые вы получили бы из опроса в социальных сетях, в котором респонденты выбирали значения от 1 до 4, чтобы указать свою связь с 10 вариантами / столбцами в опросе.
Я могу создать разреженную матрицу, используя функцию «rsparsematrix», и используя команду плотности, можно приблизить требуемое количество ответов, но я не могу контролировать количество ответов в строке и должен был бы выполнить дополнительную обработку для преобразования случайных значенийв целые числа в пределах моего желаемого диапазона.
Например: я мог бы начать с чего-то вроде
M1<-rsparsematrix(80, 80, density = .1, symmetric = FALSE)
Более многообещающий подход (из https://www.r -bloggers.com / casting-a-wide-and-sparse-matrix-in-r / ) будет генерировать значения, а затем использовать «transform» для преобразования их в матрицу.Это позволяет мне контролировать целочисленные значения, но все равно не получает ограниченное количество ответов на строку.
Пример кода из блога приведен ниже:
set.seed(11)
N = 10
data = data.frame(
row = sample(1:3, N, replace = TRUE),
col = sample(LETTERS, N, replace = TRUE),
value = sample(1:3, N, replace = TRUE))
data = transform(data,
row = factor(row),
col = factor(col)) "
Это можно настроитьпредоставить требуемую матрицу 80x80, но не решает проблему ограничения ответов на строку и, в случае дублирования записей в одной и той же комбинации строки / столбца, приведет к выходу за пределы диапазона значений, поскольку он разрешает повторяющиеся записи путем взятия суммы.
Буду признателен за любые предложения.
В качестве дополнительного вопроса, как бы вы тогда создали случайные строки с нулевыми ответами?Например, в матрице 80 * 80, как вы можете ввести 40 случайных строк без значений?Как и в приведенном выше описании, это будет соответствовать отсутствующим данным опроса.