2016-09-29 2 views
0

私はRで新しく、この問題があります。データフレーム内の値の出現を数えますが、順序を考慮する必要があります。要素の順序を考慮してデータフレーム内の値の出現をカウントする

例:

これは、1列

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 

だから、と私のデータフレームですが、私はこれまでのところ、私はdidnの

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(データセット[I] ==データセット[I + 1]){で

エラー:引数が長さゼロ

と私はよ文字列

df_weighted_graph [1、] $名<としてこれを通過することができません - データセット[1]

それをSAVデータセットの名前ではなく番号としてesを指定します。

コードまたはより良いアイデアについてのお手伝いはありがたいです!

編集

第二の出力誤差については

df_weighted_graph [1、] $名< - データセット[1]

読み込み中= FalseをstringsAsFactorsを主張逃したからです.csvコマンド。これは、表関数を使用し

read.csv(path_file、stringsAsFactors = FALSE)

+0

テーブル機能を管理してみましたか? – Ansjovis86

答えて

0

あるべき解決するので

、。

table(data$value) 
+0

私の遅い返事をおかけして申し訳ありません。その場合、テーブルは動作しませんでした。テーブルでは、それは同じ値を持つtuplasをまとめるので、注文を失う。しかし、とにかくありがとうございます:) –

関連する問題