2017-03-27 1 views
0

여러 파일을 병합 한 다음 특정 열에서 고유 한 데이터를 가져 오려고합니다. 이 아이디어는 단일 패턴의 코드를 실행할 때 완벽하게 작동합니다. 내가 루프에 대한 내부 동일한 코드를 실행하면R (객체) 클래스에서 unique() 함수에 문제가 있음

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

하지만, 고유 함수가 오류를 만들 것으로 보인다. 고유 한 함수의 출력 또는 단일 열을 저장하려고하면 변수의 클래스가 '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

나는 트위터 데이터를 가져 가고있다. 다른 시간대에 가져 가야하기 때문에 여러 파일에 저장하고 폴더에 저장합니다. 분석을하면서, 나는 그것들을 모두 모아 중복을 없애고 싶다. 원하는 경우 여기에서 파일을 사용할 수 있습니다. https://github.com/curiouscoder007/R-airlines – curiouscoder007

+0

''list'는 '길이'를''사용하지 마세요 '라고 생각합니다. 난 당신의 코드를 시도하고'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 
관련 문제