Подсчет вхождений значения во фрейме данных с учетом порядка элементов

Я новичок в R и у меня есть эта проблема: мне нужно подсчитать появление значения в фрейме данных, но с учетом порядка.

Образец:

Это мой фрейм данных с одним столбцом

Value     
(http_inspect) BARE BYTE UNICODE ENCODING
(http_inspect) BARE BYTE UNICODE ENCODING
(http_inspect) BARE BYTE UNICODE ENCODING
WEB-MISC Chunked-Encoding transfer attempt
WEB-MISC Chunked-Encoding transfer attempt
(http_inspect) BARE BYTE UNICODE ENCODING
(http_inspect) BARE BYTE UNICODE ENCODING
WEB-MISC Chunked-Encoding transfer attempt
WEB-MISC Chunked-Encoding transfer attempt
WEB-MISC Chunked-Encoding transfer attempt

Итак, мне нужно подсчитать и сохранить его в новом фрейме данных

Value                                          Frequency
(http_inspect) BARE BYTE UNICODE ENCODING          3
WEB-MISC Chunked-Encoding transfer attempt         2
(http_inspect) BARE BYTE UNICODE ENCODING          2
WEB-MISC Chunked-Encoding transfer attempt         3

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

# data frame with one column 
dataset <- read.csv(path_file)

# new data frame to save name and frequency
df_weighted_graph <- data.frame(
name=character(),
frequency=numeric(),
stringsAsFactors=FALSE
)

# Variables
frequency <- 1
index <- 1

# Inicialize first position
df_weighted_graph[1,]$name <- dataset[1]
df_weighted_graph$[1,]frequency <- frequency

for(i in 1:length(dataset)-1)
{
   if(dataset[i] == dataset[i+1])
   {
      frequency <- frequency + 1
   }
   else{

     #Update frequency
     df_weighted_graph[index,]$frequency <- frequency

     index <- index + 1
     frequency <- 1

     # New element
     df_weighted_graph[index,]$name <- dataset[i]
     df_weighted_graph[index,]$frequency <- frequency
   }
}

Он показывает некоторое сообщение об ошибке в:

Ошибка в if (dataset[i] == dataset[i + 1]) {: аргумент имеет нулевую длину

и я не могу передать это как строку

df_weighted_graph[1,]$name ]

Он сохраняется как номер, а не как имя в наборе данных.

Любая помощь с кодом или лучшей идеей благодарна!

Редактировать

Для второй ошибки вывода

df_weighted_graph[1,]$name ]

Это потому, что пропущен аргумент stringsAsFactors=False в read.csv команда.

Итак, решать эту задачу следует

читать.csv (path_file, stringsAsFactors=FALSE)

1 ответ