2017-03-27 6 views
0

複数のファイルを結合してから、特定の列から一意のデータを取得しようとしています。このアイデアは、私が単一のパターンのコードを実行しているとき、完璧に機能します。Rのユニークな()関数とオブジェクトクラスの問題に直面

united_tweets <- load_data("united") 
nrow(united_tweets) 
united_unique <- unique(united_tweets[,2]) 

しかし、私はforループ内の同じコードを実行すると、ユニークな機能がエラーを作成しているようです。一意の関数の出力、または1つの列を保存しようとすると、変数のクラスが 'list'から 'factor'に変更されます。そこから一意の値を見つけようとすると、NULL値が返されます。誰かがここで間違っていることを指摘できますか?

for(i in 1:length(airlines)){ 
     tmp <- load_data(airlines[i]) 
     tweet <- as.list(tmp$text) 
     print(class(tweet)) 
     tmp1 <- as.list(unique.default(tweet)) 
     print(nrow(tmp1)) 
    } 
+2

作業中のデータまたはその一部を共有できますか。私はコードを実行して何が起きているのかを見たい。 – Misaki

+0

私はちょうどTwitterのデータを取っています。私は別の時間帯にそれを取らなければならないので、私はそれらを異なるファイルに保存し、それらをフォルダに蓄積しています。分析をしながら、私はそれらをすべて一緒に取って重複を取り除きたい。私はあなたが望むなら、ここにファイルを用意しています。 https://github.com/curiouscoder007/R-airlines – curiouscoder007

+0

''リスト 'は' '長さ' 'を使用しないでください。私はあなたのコードを試して、 'tmp1'はその中にデータを持っています。 'nrow(tmp1)'の代わりに 'length(tmp1)'を試してください。 – Misaki

答えて

0

これは私が使用したコードです。あなたのものと2つの違い、read.csvlength(tmp1)

## file names  
airlines = c("Delta03262017123126.csv", "Delta03262017124221.csv") 

for(i in 1:length(airlines)){ 
     tmp <- read.csv(airlines[i]) 
     tweet <- as.list(tmp$text) 
     print(class(tweet)) 
     tmp1 <- as.list(unique.default(tweet)) 
     print(length(tmp1)) 
} 

# [1] "list" 
# [1] 1 
# [1] "list" 
# [1] 3495 
関連する問題