Точный сценарий будет варьироваться в зависимости от вашего ввода и того, какой вывод вы хотите (просто печатать на интерактивной консоли? Записывается в .csv?), Но вот моя попытка:
#Read the data into .csv - it assumes headers
dat <- read.csv(file = "yourfile.csv")
#For right now, use this fake data
dat <- data.frame(x = c(-4, 0, 1, 1, -4, NA, NA, 0), y = c(1, 1, 1, 0, -4, NA, 0, NA))
#Get the frequency of values for each column, assuming every column consists of data
apply(X = dat, MARGIN = 2, FUN = function(x) {summary(factor(x))})
Функция apply
применяет функцию, которую вы ей даете (FUN), к полям (1 = строки, 2 = столбцы) данных, которые вы ей даете. Вы можете дать ему любую функцию, которая вам нравится. Пропуск FUN = summary
даст вам среднее, минимальное, максимальное и т. Д. Каждого столбца (потому что они числовые). Но по умолчанию метод summary () для факторов - это частоты, которые вам нужны. Таким образом, вместо того, чтобы передавать сводку, обманывайте R, чтобы увидеть ваши числа как фактор: определите анонимную функцию function(x)
(apply будет знать, что по x вы ссылаетесь на столбцы, взятые по одному). Установите эту функцию, чтобы сначала преобразовать x в коэффициент (factor(x)
), а затем суммировать этот коэффициент. Это вернет матрицу с частотами для каждого столбца.
Не самый элегантный код, но я думаю, он даст вам то, что вам нужно.