2016-07-22 1 views
-2

파일을 read.csv을 사용하여 데이터 프레임 newdata으로 읽을 때 매우 이상한 문제가 발생했습니다. 열R - 문자열 열이 정수로 간주됩니다.

하나는 "사이트"이며, 문자열이어야한다 :

  • 내가는 "www.google.com"로 값이 포함 된 것을 볼 내가보기를 사용하여 데이터 프레임을보고 "www.facebook.com"등
  • 내가 typeof(newdata$Site)하여 컬럼의 유형을 확인할 경우에, 나는 결과 "정수"를 얻는다.
  • table(newdata$Site)을 사용하여 각 문자열의 출현 빈도를 확인한 후 .csv 파일에이 테이블을 작성하면 각 값에 적절한 빈도 테이블이 추가 숫자와 함께 표시됩니다 (예 : 수치가없는 이름이있는 하나의 열 사이트 문자열 (예 : "www.google.com")이있는 var1 열과 빈 칸이 포함 된 Freq 열이 있습니다.

는 I (예 : "www.google.com"및 "구글"로 "www.google.co.uk")와 그때, grepl 사용 하나에 여러 값을 결합하여 새로운 컬럼을 만들려고 I R이 난 단지 a = newdata[,"Site"]하여이 열을 부분 집합을 시도

, 내가 a 하나에 .csv 결과에 쓰기 ... 형 요소의 것을 가지고 ... 문자열로하지 원래 열을 처리 실현 모든 값의 긴 줄 .... 내가 잘못 뭐하는 거지

???? 나는 친절이 물건의 새로운 그리고 난 정말 어떻게 해야할지하지 않습니다 ...

감사합니다!

+0

모두를 위해서, 단어 묶음이 아닌 텍스트 서식을 지정하십시오. 그리고 여러분의 칼럼이 어떤 요소인지 알아보기 위해'str (newdata)'를 살펴본 다음, 인자들에 대해 검색하십시오 (첫 번째 단계 :'? factor') – Tensibai

+2

매뉴얼을 읽었습니까? 아마도 그렇지 않습니다. 아무도하지 않습니다. 그들은 단지 여기에 먼저 게시합니다. 'help (read.csv)'. 특히,'stringsAsFactors' 인자. –

+0

@RichardScriven 안녕 -이이 CSV에서 읽기와 관련이 있음을 몰랐다 ...하지만 난 당신의 관심을 주셔서 감사합니다 :) – user3017075

답변

1

이미 꽤 많이 파고있다. 당신은 당신의 란 Site가 요인이고 typeof() 정수가다는 것을 알고있다.

는, 데이터 판독시 요인으로 문자열을 부호화 피하기 위해 사용

read.csv(..., stringsAsFactors = FALSE) 

계수는 정수가 레벨의 위치를 ​​제공 정수로서 저장된다. 시도해보십시오 :

x <- gl(3,2,labels=letters[1:3]) 
#[1] a a b b c c 
#Levels: a b c 

typeof(x) 
#[1] "integer" 

levels(x) 
#[1] "a" "b" "c" 

levels(x)[x] ## equivalent to "as.character(x)", but more efficient 
#[1] "a" "a" "b" "b" "c" "c" 
+0

그리고 우리가 지금 현장 문서를 갖고 있기 때문에,의 그것에 링크 (http://stackoverflow.com하자/문서/R/1104/요인 # t = 201607221527562701029 & A = 말) – Benjamin

+0

난 그냥 복사에있는 링크를 붙여. 그러나 나는 그것을 할 것을 요청하지 않았다. 보충으로 추가하기 만하면됩니다. :) – Benjamin

+0

고마워요 @ ZheyuanLi! 해결책과 교훈적인 태도 둘 다! – user3017075