2013-07-15 3 views
0

R 프로그래밍에 익숙하지 않습니다. 변수에 저장된 문자 집합을 가지고 있습니다. x1 ~ x25 예를 들어 x1"v21", "v345", "v212" 등의 값을 가지며 x2 to x25은 유사한 유사 문자 값을 포함합니다. "v45", "v67", "v556", "v21", "v44"(x1 to x25)은 모두 길이가 다릅니다. 이것은 분석 결과와 같습니다. x1 to x25의 문자 값을 비교하고 x1 to x25 값으로 다섯 번 이상 표시된 문자 결과를 출력하는 함수를 작성하고 싶습니다. 이러한 x1 to x25 등장 인물 인 경우문자열 비교 R

"v21", "v67", "v556", "v45", "v44", "v212" 

: 예를 들면 나는 같은 결과를보고 싶습니다 그래서. 나는 시각적 인 점검을하고 결과를 적어 봤지만 너무 오랜 시간을 들여서 내가 속박하고있다.

이것이 가능한 경우 (내가 알고있는 경우) 다른 사람이 나를 도울 수 있도록 도와주세요. 그래서 배울 수도 있습니다.

감사

+0

지금까지 해보신 것은 무엇입니까? 'table' 함수를 찾았습니까? 및'적용'가족? 시도한 코드와 실패한 코드를 공유하십시오. 또한 약간의 데이터를 포함시킬 수 있다면 더 나은 답변을 얻을 수 있습니다.'dput (head (yourdata, 20))'. – Justin

답변

1

여기 당신의 X의이 목록에있는 가정에 대한 답변입니다. 하지 첫 번째 경우에하는 일을합니다

my.vars <- list(x1, x2, ..., x25) 

corpus <- unique(unlist(my.vars)) 
occurences <- sapply(X=corpus, 
        FUN=function (k) { 
         occurences <- sapply(my.vars, function (l) k %in% l) 
         occurences <- sum(occurences) 
        }) 
names(occurences) <- corpus 

i.want <- occurences[occurences >= 5] 
3

먼저, 예를 들어 설정을 :

어려운 그들 모두와 함께 작업 할 수 별도로 저장 (25 개) 변수를 갖는
x1 <- c("v21", "v67", "v556", "v45", "v44", "v212") 
x2 <- c("v21", "v67", "v556", "v45", "v44", "v212") 
x3 <- c("v21", "v67", "v556", "v45", "v44", "v212") 
x4 <- c("v21", "v67", "v556", "v45", "v44", "v212") 
x5 <- c("v22", "v61", "v56", "v3", "v4", "v20") 
x6 <- c("v22", "v61", "v56", "v3", "v4", "v20") 
x7 <- c("v22", "v61", "v56", "v3", "v4", "v20") 
x8 <- c("v22", "v61", "v56", "v3", "v4", "v20") 
x9 <- c("v22", "v61", "v56", "v3", "v4", "v20") 
x10 <- c("v556") 
x11 <- c("v12","v345","v55") 
x12 <- c("v12","v345","v55") 
x13 <- c("v12","v345","v55") 
x14 <- c("v12","v345","v55") 
x15 <- c("v1", "v51", "v43", "v43") 
x16 <- c("v1", "v51", "v43", "v43") 
x17 <- c("v1", "v51", "v43", "v43") 
x18 <- c("v1", "v51", "v43", "v43") 
x19 <- c("v200") 
x20 <- c("v200") 
x21 <- c("v200") 
x22 <- c("v39","v556","v41") 
x23 <- c("v39","v556","v41") 
x24 <- c("v39","v556","v41") 
x25 <- c("v39","v556","v41") 

. 모두가 함께

vars <- paste0("x",1:25) 
corpus <- mget(vars) 

를 사용 얻으려면 다음 corpus는 모든 데이터를 포함하는 목록입니다. 원하는 것을 찾으려면 - 적어도 5 회 이상 발생하는 모든 "v ###"- 테이블을 만든 다음 각 요소에 대해 부울 테스트를 수행하십시오. 해당 값의 이름을 추출하여 "v ###"을 가져옵니다.

valTable <- table(unlist(corpus)) 
keepers <- names(valTable[valTable >= 5]) 
keepers 
# [1] "v20" "v22" "v3" "v4" "v43" "v556" "v56" "v61" 
+0

+1 OP를 대신해 예제 데이터를 작성하려고합니다. 당신은해서는 안됩니다! –