Я новичок в R. Я все время переполнял Stack Overflow и, возможно, неправильно искал ответ, который я хочу.Распределение вероятности со временем?
У меня есть матрица с уникальными диадическими отношениями как строки и годы как столбцы. Ячейки заполнены 0, если два человека не взаимодействовали в этом году, и 1, если они это сделали.
Я пытаюсь рассчитать процент для каждой ячейки - число раз 1 происходит относительно количества записей после первого появления 1. Вкратце говоря, это будет просто то, как часто два человека взаимодействуют каждый год с тех пор, как они встречались ,
Первое появление 1 строки всегда будет 100%. Например, строка B из приведенного ниже примера:
V1 V2 V3 V4
A 0 0 1 0
B 1 1 0 0
Становится
100 100 66 50
я добрался до расчета кумулятивной суммы для каждой ячейки матрицы
data <- matrix(sample(0:1,5*4,rep=T),4)
test<-t(apply(data,1,cumsum))
И тогда мой Идея заключалась в том, чтобы создать функцию вроде как ниже, но я застрял на том, какое выражение использовать для знаменателя (ниже только удаляет количество записей до первого появления одного). Я не совсем понимаю, как подмножать будущие случаи, или напрямую ссылайтесь на индекс столбца матрицы.
mm<-function(x){(x)/(ncol(data)-(which(x>0)[1]))}
tmp_int<-apply(data, 1:2, mm)
Или есть намного более простой способ сделать это? Я попытался использовать функцию ecdf, но он возвращал NA.
Большое спасибо.
ли немогу (применяются (данные, 1, cumsum)/(1: ncol (данные))) * 100' то, что вы ищете? – nicola