2014-04-04 4 views
2

나는 R로 읽어 들여야 할 CSV 파일을 가지고 있습니다 (열의 행을 바꿔 넣음). 그리고 처리되었습니다. 나는 그것을 읽을 때CSV 데이터를 읽는 방법

Year,1970,1971,1972 
Variable one,1,2,3 
Variable two,11,22,33 
Variable three,111,222,333 

, 몇 년이 'X'

> rc <- read.csv("file.csv") 
> rc 
      Year X1970 X1971 X1972 
1 Variable one  1  2  3 
2 Variable two 11 22 33 
3 Variable three 111 222 333 

때 접두어 : 여기

파일 (열 실제로 2014 연장하지 않는 것이)의 형태이다 나는 모든 것을 문자열로 취급하는 데이터를 조 변경한다.
> t(rc) 
     [,1]   [,2]   [,3]    
Year "Variable one" "Variable two" "Variable three" 
X1970 " 1"   " 11"   "111"   
X1971 " 2"   " 22"   "222"   
X1972 " 3"   " 33"   "333" 

내가 CSV 파일의 행의 이름을 삭제하면

는 날짜는 아직 X 접두어되지만 전치 문자열로 데이터를 변경하지 않습니다.

그래서 숫자를 숫자로 바꿔서 문자열을 만들지 않도록하려면 어떻게해야합니까?

+0

아마도 [this answer] (http://stackoverflow.com/a/15688406/2204410) 도움이 될 것입니다. – Jaap

답변

5

그냥 read.csvcheck.names = FALSE를 추가 (하지만 문법적으로 잘못된이 경우 이름으로 끝날 것이기 때문에 그것은 좋은 생각이 아니다), 데이터를 전치에 관한

X <- read.csv(text = "Year,1970,1971,1972 
Variable one,1,2,3 
Variable two,11,22,33 
Variable three,111,222,333", check.names = FALSE) 
X 
#    Year 1970 1971 1972 
# 1 Variable one 1 2 3 
# 2 Variable two 11 22 33 
# 3 Variable three 111 222 333 

먼저 문자열 값을 드롭 나중에 열 이름으로 다시 입력하십시오.

tX <- t(X[-1]) 
colnames(tX) <- X[[1]] 
tX 
#  Variable one Variable two Variable three 
# 1970    1   11    111 
# 1971    2   22    222 
# 1972    3   33    333 
+0

고마워, 아주 좋다. 사소한 점, 'Year'열 이름이 사라졌습니다. –

+0

@ 윌리암 모리스, "사라졌습니다". 여러분의 "year"변수는't()'를 사용할 때 발생했던'matrix'의 이름이되었습니다. 'row.names'에는 "name"이 없습니다 ("row.names"이외 :-)). – A5C1D2H2I1M1N2O1R2T1

+0

check.names = FALSE를 사용하면 구문 적으로 잘못된 이름이 표시된다고 말했습니까? 최종 결과를 얻는 더 좋은 방법이 있습니까? –

관련 문제