2013-12-20 2 views
-1
에 문자열을 변환하는 방법

내가 변수의 숫자를 생성하는 '할당'을 사용하고 그들에게 할당하는 값 :R이 - 변수 이름

N <- 10 
for(i in 1:N) 
{ 
    #create variable names n1, ..., n'N' 
    assign(paste0("name",i), data.frame(matrix(1:100, ncol=3, nrow=100))) 
} 

내가 지금이 변수 이름에 액세스 할 수 있어야하지만, 그들에게 아무 것도 지정하지 마라. 이 열 헤더를 변경해야합니다 (이 응용 프로그램에서). 다음 코드는 작동하지 않습니다하지만,이 같은 :

for(i in 1:N) 
{ 
    #create proper column headers 
    colnames(assign(paste0("name",i), ???) <- c("a","b","c") 
} 

내가 좋아하는 것은 대신 넣어 알고 "???" 또는 다른 접근법을 배우기 위해서입니다.

변수에 아무 것도 지정하지 않아도되는 다른 응용 프로그램이 있습니다.

+0

당신이 변수가 이름을 지정했으면'foo', 그냥'

+0

하지만 어떻게 설정 루프에서 'foo는'쓰기 할 같은 나는 가지고있다? 나는 'foo1', 'foo2', 'foo3'등을 의미합니다. 어떻게해서든지 'foo'에 번호를 추가해야합니다. 이게 문제 야. 만약 내가 'paste0 ("foo", i)'를 수행한다면, 이것은 문자열이며 변수 이름이 아닙니다. – bill999

+1

당신은'get ('foo1')'을 사용합니다. 그러나,'R'-ish 방법은'assign '보다는'named (list)'를 사용하는 것입니다 : for (...) {yourlist [[i]] <- ...}'. – Justin

답변

2

이름 컬렉션을 얻기 위해 mynames<-ls("name")과 같은 작업을 수행 할 수 있습니다.하지만이 방법을 사용하면 데이터 이름을 지정하는 동시에 데이터 이름을 할당하는 것이 좋습니다. structure 또는 훨씬 더 간단합니다. N 요소를 사용하여 list 변수를 만들고 목록 요소에 이름을 할당합니다 (또한 데이터 요소도 목록 요소에 할당합니다).

`my.list`<-list() 
for (i in 1:N) { 
     my.list[[i]]<-data.frame(matrix(1:100, ncol=3, nrow=100)) 
     names(my.list)[i]<-paste('name',i) 
}