2012-09-25 5 views
2

Мой вопрос сегодня относится к кадру данных, в котором я работаю в R. Заголовок кадра данных выглядит следующим образом: String (unique), Integer N [0-23]R вычислять процентные значения в кадре данных

Те 24 Целочисленные значения представляют частоту строки, связанную с каждым часом дня. Логически, значения int в каждой строке суммируются с числом, как часто строка появляется в данных в целом.

Вещь, мне не нужна настоящая частота строки в определенный час, но процент этой частоты представляет собой сумму целочисленных значений во всех строках.

Мой лектор намекнул, что таблица() может быть правильным инструментом R для этого, но я честно не понимаю, как это должно мне помочь.

Если все остальное терпит неудачу, я буду вычислять его в Java - хотя я очень ценю вашу помощь, чтобы сделать это в R.

Спасибо за чтение до сих пор и заранее спасибо за вашу помощь,

Rickyfox

@@@@@@ Я правку, прочитал мне @@@@@@

с помощью я получил от Джеймса я получил следующее proptable

Вещь, проценты суммируются до 100 для каждой строки, но они должны делать это для всей таблицы. Есть ли способ сделать это?

ответ

5

Использование prop.table на matrix, содержащий значения:

x <- data.frame(id=letters[1:3],val0=1:3,val1=4:6,val2=7:9) 
prop.table(as.matrix(x[-1]),margin=1) 
      val0  val1  val2 
[1,] 0.08333333 0.3333333 0.5833333 
[2,] 0.13333333 0.3333333 0.5333333 
[3,] 0.16666667 0.3333333 0.5000000 

Edit: Полностью рабочий пример:

tt=read.table("topichitsperhod.csv",sep=",",header=TRUE) 
tt=na.omit(tt[-1]) 
pt=prop.table(tt[-1],margin=NULL) 

Первый столбец не остался, потому что он держал тему строк.

+0

Спасибо за ваш ответ Джеймс! Будет ли использовать as.matrix() здесь, или мне нужно создать матрицу конкретно с элементами столбца 1, являющимися строками? Я не так разбираюсь в матрицах в R – Rickyfox

+0

«Матрица» может содержать только один тип (и мы хотим, чтобы числовое значение для 'prop.table'), поэтому в приведенном выше примере я использовал' as.matrix' для всего, кроме первый (знак) столбец. Если вы предпочитаете, вы можете сделать это отдельно и использовать первый столбец как «rownames». – James

+0

обновил мой вопрос, чтобы адаптироваться к прогрессу, который я сделал с вашей помощью. – Rickyfox

 Смежные вопросы

  • Нет связанных вопросов^_^