R은 :

2017-01-28 2 views
-1

우리는 우리가 밤 "에 의해" "나는 슬립"같은 것을 얻을 수 있도록 위의이 벡터를 조작 할 방법R은 :

x <- c("I", "sleep", "every", "day", "all", "night") 

같은 벡터를 말해봐 요소를 결합 및 벡터에 indice을 제거 두 요소를 함께 결합하고 x[3]x[4] 색인을 동시에 제거하지 않습니까? 감사.

+0

? 무엇이 잘못 되었습니까? 이 정보를 포함하도록 질문을 편집하면 닫힐 수 있습니다. – miken32

답변

0

이것은 당신이

x <- c("I", "sleep", "every", "day", "all", "night") 
i <- 1 
while (i < length(x)){ 
    if(i %in% 3:4){ 
    i <- i+1 
    next 
    } else { 
    print(paste(x[i], x[i+1],sep="-")) 
    i <- i+2 
    } 
} 

출력을 물어 무엇을 할 것인가 :

[1] "I-sleep" 
[1] "all-night" 
+0

고맙습니다. 이 문제는 나에게 두통을 안겨주었습니다 ... 그리고 제가 왜 투표를하지 않았는지 확신하지 못합니다. 왜냐하면 제가 R에 처음 왔을 때 정말 간단한 질문이 아니기 때문입니다. – oooooooooooooo

+0

대답에 만족한다면 아무 문제 없습니다. 이 질문은 닫힌 것으로 간주 될 수 있도록 답의 상단에있는 체크 표시를 클릭하십시오. – JustGettinStarted

+0

추신 : 그것은 당신이 시도한 솔루션을 게시하지 않았기 때문에 downvoted되었습니다. 기여자는 OP가 개선을 도울 수있는 해결책을 제시하기 위해 노력했음을보고 싶습니다. – JustGettinStarted

0

확인 .. 당신의 질문은 아주 간단합니다. 당신은 그냥 googleing하여 이러한 질문에 대한 답변을 찾을 수 있습니다. 그러나 여기 여기에 빠른 수정

x <- c("I", "sleep", "every", "day", "all", "night") 
c(paste(x[c(1,2)],collapse="-"),paste(x[c(5,6)],collapse="-")) 
# [1] "I-sleep" "all-night" 
0

에게있는 vector에 더 많은 요소가 또 다른 버전입니다. 제 3 및 제 4 요소를 제거한 후, data.frame에 나서, matrix로 변환하고, 행

do.call(paste, c(as.data.frame(matrix(x[-(3:4)], 
         ncol=2, byrow=TRUE)), sep="-")) 
#[1] "I-sleep" "all-night" 

하여 요소에 가입 do.call에 내 paste를 사용하거나 함께 부분 집합에 의해 두 단계 프로세스를 사용 논리적 재활용을 통해 vector 후 지금까지 시도 무엇 paste 그것을 한 단계

x1 <- x[-(3:4)] 
paste(x1[c(TRUE, FALSE)], x1[c(FALSE, TRUE)], sep="-") 
#[1] "I-sleep" "all-night"