2016-11-27 7 views
0

루프를 사용하여 생성하는 객체 목록이 있습니다. 객체의 행렬과 행 이름을 기반으로 Cij라는 이름이 지정됩니다.R에서 정규 표현식을 사용하여 파일 이름 호출

패키지 SP에서 spatialLine()을 사용하여이 Cij를 공간 선 객체에 바인딩하려고합니다.

나는 nam1이 이름 CIJ의 벡터가

final_lines <- SpatialLines(list(lapply(nam1,function(x) paste0(x)))) 

을 시도하고있다. 하지만이 함수는 nam1의 결과를 데이터 값이 아닌 텍스트로 가져 오는 오류를 내게줍니다.

함수의 문자열로 Cij 대신 Cij 값을 어떻게 호출 할 수 있습니까?

또는 누군가가 Regex를 사용하여 R에서 데이터 값을 호출하는 방법을 알려줄 수도 있습니다.

감사

답변

2

nam1이 CIJ 객체의 캐릭터 이름을 포함하고 Cijs는 다음 기능 get()에 의해 개체의 데이터 값을 호출 할 수 있습니다 Lines 클래스 개체 벡터 인 경우. for 루프를 사용하여 임시 목록 (mylines.lst)을 만들 것을 제안합니다.

mylines.lst <- list() 
for(tti in 1:length(nam1)) { 
    mylines.lst[[tti]] <- get(nam1[tti]) 
} 

마지막으로 당신은 final_lines에 할당 할 수 있습니다 :

final_lines <- SpatialLines(mylines.lst) 
+0

를 I라는 오류 얻을 "GET (nam1 [I])의 오류 : 유효하지 않은 첫 번째 인수"Dinesh.hmn 쓰기 @ –

+0

를' class (nam1)'이'factor'라면'nam1 <- as.character (nam1)'으로'character'로 변환해야합니다. 나는 그것이 효과가 있기를 바랍니다. – kaliczp

+1

감사합니다. 칼리, 완벽하게 작동합니다. –