C# является хорошим языком, который соответствует Вашим требованиям, и он определенно подходит для графики благодаря усилиям Microsoft предоставить ему большие инструменты и библиотеки как Visual Studio и XNA.
Вы можете использовать таблицу
:
R> x <- read.table(textConnection('
Believe Age Gender Presents Behaviour
1 FALSE 9 male 25 naughty
2 TRUE 5 male 20 nice
3 TRUE 4 female 30 nice
4 TRUE 4 male 34 naughty'
), header=TRUE)
R> table(x$Believe)
FALSE TRUE
1 3
Я думаю об этом как о двухэтапном процессе:
подобрать исходный фрейм данных в соответствии с предоставленным фильтром (Верить == ЛОЖЬ); затем
получить количество строк в этом подмножестве
Для первого шага функция subset является хорошим способом сделать это (просто альтернатива обычному индексу или скобкам ) обозначение).
Для второго шага я бы использовал dim или nrow
Одно из преимуществ использования подмножества : вам не нужно анализировать результат он возвращается, чтобы получить нужный результат - просто вызовите для него nrow напрямую.
так в вашем случае:
v = nrow(subset(Santa, Believe==FALSE)) # 'subset' returns a data.frame
или заключенный в анонимную функцию :
>> fnx = function(fac, lev){nrow(subset(Santa, fac==lev))}
>> fnx(Believe, TRUE)
3
Помимо nrow , эту работу также выполняет dim . Эта функция возвращает размеры фрейма данных (строки, столбцы), поэтому вам просто нужно указать соответствующий индекс для доступа к количеству строк:
v = dim(subset(Santa, Believe==FALSE))[1]
Ответ на OP, опубликованный перед этим, показывает использование таблицы непредвиденных обстоятельств. Мне не нравится такой подход к общей проблеме, изложенный в ОП. Вот причина. Конечно, на общую проблему , сколько строк в этом фрейме данных имеет значение x в столбце C? , можно ответить с помощью таблицы непредвиденных обстоятельств, а также с помощью схемы «фильтрации» (как в моем ответе здесь). Если вы хотите подсчет строк для всех значений для данной факторной переменной (столбца), тогда таблица непредвиденных обстоятельств (путем вызова таблицы и передачи интересующего столбца (столбцов)) является наиболее разумным решением; однако OP запрашивает подсчет конкретного значения в факторной переменной, а не подсчитывает все значения. Помимо снижения производительности (может быть большим, может быть тривиальным, просто зависит от размера кадра данных и контекста конвейера обработки, в котором находится эта функция). И, конечно же, как только результат вызова таблицы будет возвращен, вам все равно придется проанализировать из этого результата только с нужным количеством.
Вот почему для меня это проблема фильтрации, а не перекрестной таблицы.