R сюжетная частота строк с определенным рисунком - PullRequest
0 голосов
/ 26 июня 2011

Дан фрейм данных со столбцом, который содержит строки.Я хотел бы изобразить частоту строк, которые несут определенный образец.Например,

strings  <- c("abcd","defd","hfjfjcd","kgjgcdjrye","yryriiir","twtettecd")
df <- as.data.frame(strings)
df
     strings
1       abcd
2       defd
3    hfjfjcd
4 kgjgcdjrye
5   yryriiir
6  twtettec

Я хотел бы нанести на график частоту строк, содержащих шаблон `" cd "Кто-нибудь с быстрым решением?

Ответы [ 3 ]

2 голосов
/ 26 июня 2011

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

x <- c("abcd","abcd","defd","hfjfjcd","kgjgcdjrye","yryriiir","twtettecd")

Чтобы найти только те строки, которые содержат определенный шаблон,используйте grep или grepl:

y <- x[grepl("cd", x)]

Чтобы получить таблицу частот, вы можете использовать table

table(y)

y
      abcd    hfjfjcd kgjgcdjrye  twtettecd 
         2          1          1          1 

И вы можете построить ее, используя plot илиbarplot следующим образом:

barplot(table(y))

enter image description here

1 голос
/ 27 июня 2011

чек "Kernlab" пакет.Вы можете определить ядро ​​(шаблон), которое может содержать строки любого типа, и посчитать их позже.

1 голос
/ 26 июня 2011

Другие уже упоминали grepl.Вот реализация с plot.density, использующая grep для получения позиций совпадений enter image description here

plot( density(0+grepl("cd", strings)) )

Если вам не нравится расширение графика плотности за пределы диапазона, есть другие методы вПакет 'logspline', позволяющий получить четкую границу на крайних расстояниях.Поиск RSiteSearch

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