2013-05-13 2 views
0

입력 된 다른 문자열을 반영하도록 내 R 함수의 출력 이름을 변경하고 싶습니다. 다음은 내가 시도한 것입니다.변수 이름을 만들기 위해 문자열을 연결

kd = c("a","b","d","e","b") 

test = function(kd){ 

    return(list(assign(paste(kd,"burst",sep="_"),1:6))) 

} 

이것은 간단한 테스트 기능입니다.

Warning message: 
In assign(paste(kd, "burst", sep = "_"), 1:6) : 
    only the first element is used as variable name 

이상적으로는 a_burst = 1, b_burst = 2 등등과 같은 OUPUT을 얻을 것입니다하지만 점점 가까이하지 오전 : 나는 (나를 위해 단지 나쁜 오류입니다) 경고를 얻을.

나는 벡터의 내용에 의해 dataframe을 분할하고

How to split a data frame by rows, and then process the blocks?

하지만 매우 유사한 그 벡터의 이름에 따라 모든 이름을 할 수 싶습니다. 명명은 필수적입니다.

답변

3

어쩌면 이런가?

kd = c("a","b","d","e","b") 

test <- function(x){ 
    l <- as.list(1:5) 
    names(l) <- paste(x,"burst",sep = "_") 
    l 
} 

test(kd) 
+0

정확히 내가 무엇을 찾고 있었습니까. 고마워요! – user1807096

2

당신은 setNames의 방법으로 대신 목록으로 벡터를 사용할 수 있습니다

t1_6 <- setNames(1:6, kd) 
t1_6 
    a b d e b <NA> 
    1 2 3 4 5 6 

> t1_6["a"] 
a 
1 

당신이 문자 벡터에 연속 이름을 지정 wnated 경우 다시 내가 궁금해 질문을 보면 :

> a1_5 <- setNames(kd, paste0("alpha", 1:5)) 
> a1_5 
alpha1 alpha2 alpha3 alpha4 alpha5 
    "a" "b" "d" "e" "b" 
관련 문제