2012-05-31 5 views
0

죄송합니다. 아마도 멍청한 질문 이겠지만, 저는 R로 프로그래밍을 시작했습니다. 그리고 저는 이미 붙어 있습니다.리스트 사용하기 R

형식으로되어있는 파일에서 일부 데이터를 읽는 중입니다.

3.482373 8.0093238198371388 47.393873 
0.32 20.3131 31.313 

내가 원하는 것은 각 줄을 나눠서 각 개별 숫자를 처리하는 것입니다.

나는 stringr 패키지와 이것은 내가에 색인을하고 싶지만 방법을 모르는 목록을 생성

x = str_split(line, " ") 

사용을 가져 왔습니다.

나는 x [[1 : 2]]가 두 번째 요소를 얻음을 알았지 만 그것은 그것에 관한 것입니다. 이상적으로 내가 좋아하는 것 같습니다

x1 = x[1] 
x2 = x[2] 
x3 = x[3] 

그러나 어쨌든 이것을 찾을 수 없습니다. 사전

+0

난 당신이 입력하여 얻을 도움말 페이지를 읽을 것인가? 콘솔에서 추출 등은 부분 집합, 색인을 이해하려면 사용할 수있는 도입 중 하나를 읽어야합니다 , 그냥 시작하는 경우. – joran

+0

답장을 보내 주셔서 감사합니다. 나는 도움 (목록)과 도움 (str_split)을 모두 보았지만 아직도 이해할 수 없다. – TrueWheel

+0

제 의도는 당신이'''[''오직 하나의 원소를 선택하기 때문에 색인이 많지 않으면 벡터와 함께 사용하는 것입니다. 특히리스트를 보면,'['와'[[''매우 다른 행동을 이해하는 것이 중요합니다. – joran

답변

1

에서

덕분에 당신은 당신이 찾고있는 동작을 취득 unliststr_split에 전화를 포장 할 수 있습니다.

+0

감사합니다. 완벽하게 작동했습니다. – TrueWheel

1

이것을 얻기위한 일반적인 방법은 데이터 프레임 (특별한 종류의 목록)으로 가져 오는 것입니다. 파일 이름은 "fil.dat"가 "하고있는 경우"C :/디렉토리/"기본적으로

dfrm <- read.table("C:/dir/fil.dat") # resist the temptation to use backslashes 
dfrm[2,2] # would give you the second item on the second row. 

는 R에서 필드 구분자는"공백 "그 때문에, 당신이 가지고있는 것 같다 sep= 인수를 제공 할 필요가 없으며 read.table 함수가 숫자로 가져 오기를 시도합니다. 안전하지 못하도록하려면 colClasses=rep("numeric", 3)과 같은 옵션을 강요하는 것이 좋습니다. 이상한 항목 (예 : Excel 덤프)를 사용하면 요인 변수를 얻고 정상적으로 복구하는 방법을 이해할 수 없습니다.

+0

답변과 명확한 설명에 감사드립니다. 이제 read.table을 대신 사용해 보겠습니다. – TrueWheel

2

unlist을 사용하면 벡터 목록 대신 벡터가 표시되므로 직접 색인 생성 :

R> unlist(str_split("foo bar baz", " ")) 
[1] "foo" "bar" "baz" 

어쩌면 파일을 read.table 또는 해당 변형 중 하나에서 직접 읽어야합니까?

그리고 당신은 R로 시작하는 경우, 당신은 정말

+0

조언 주셔서 감사합니다! 나는 지금 테이블을 읽을 것입니다! – TrueWheel