Цикл файла .csv в R, вычисляя относительные частоты? - PullRequest
0 голосов
/ 03 августа 2010

Я новичок в R и пытаюсь создать скрипт .R, который откроет мой файл .csv и вычислит некоторые частоты. В этом файле есть заголовки, и связанные с ними значения: 1,0, NA или -4. То, что я хочу сделать, - это пройти через каждый вертикальный ряд и затем вычислить их частоты. Я уверен, что это простой сценарий, но я не уверен, как работает синтаксис R. Кто-нибудь может помочь мне начать это, пожалуйста?

1 Ответ

1 голос
/ 04 августа 2010

Точный сценарий будет варьироваться в зависимости от вашего ввода и того, какой вывод вы хотите (просто печатать на интерактивной консоли? Записывается в .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)), а затем суммировать этот коэффициент. Это вернет матрицу с частотами для каждого столбца.

Не самый элегантный код, но я думаю, он даст вам то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...