В списке фреймов данных рассчитайте пропорцию, соответствующую условию - PullRequest
2 голосов
/ 30 января 2020

У меня есть список фреймов данных (gtf), и я хотел бы рассчитать, какая доля каждого из этих фреймов данных имеет 0 в наборе координат [i, j] (координаты [i, j] == 0). т.е. если у меня 500 кадров данных и 120 из них имеют 0 в координатах [1,1], то функция вернет 120/500.

В конце концов, я бы хотел, чтобы моя функция возвращала фрейм данных, столбцы которого соответствуют столбцам gtf, а значения - это пропорции фреймов данных, которые имели 0 в соответствующих координатах. Вот воссоздание gtf:

x = matrix(c(1,0), 6,6)
x = as.data.frame(x)
y = matrix(c(0,1), 6,6)
y = as.data.frame(x)
gtf = list(x,y,x,y)

Вот что я пробовал:

for (i in seq_along(gtf)) 
    for (j in seq_along(gtf[[i]])) 
        if (gtf[[i]][1,j] == 0) tf[[i]] <- TRUE

1 Ответ

1 голос
/ 30 января 2020

Мы преобразовываем элементы list в логическую матрицу, используя ==, Reduce, в один набор данных, добавляя соответствующие элементы 'i, j' и делим на length list* 1006. *

Reduce(`+`, lapply(gtf, `==`, 0))/length(gtf)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...