2016-02-29 5 views
1

У меня есть следующие матрицы в RСоздание нового столбца в г с числом

b = matrix(c(1,1,1,1,1,1,1,1,1,1,1,1,2), ncol = 1) 

я выполнить следующую команду для подсчета всех уникальных значений.

table(b) 

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

 [,1] [,2] 
[1,] 1 12 
[2,] 1 12 
[3,] 1 12 
[4,] 1 12 
[5,] 1 12 
[6,] 1 12 
[7,] 1 12 
[8,] 1 12 
[9,] 1 12 
[10,] 1 12 
[11,] 1 12 
[12,] 1 12 
[13,] 2 1 
+1

Для кодовых блоков, отступ четыре пробела или кнопки, как {} в верхней части редактора. – Frank

ответ

5

Мы можем использовать ave

cbind(b, ave(b[,1], b[,1], FUN=length)) 
#  [,1] [,2] 
# [1,] 1 12 
# [2,] 1 12 
# [3,] 1 12 
# [4,] 1 12 
# [5,] 1 12 
# [6,] 1 12 
# [7,] 1 12 
# [8,] 1 12 
# [9,] 1 12 
#[10,] 1 12 
#[11,] 1 12 
#[12,] 1 12 
#[13,] 2 1 
+0

ave работает как подмножество? – nik

+1

@Mol Предположим, если вы хотите создать новый столбец в наборе данных с помощью некоторых переменных группировки, можно использовать 'ave'. Это не 'subset'ing, но может быть полезно для подмножества, возвращая логический индекс (если необходимо). – akrun

+1

спасибо для объяснения! Великий :-) – nik

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