2016-12-07 5 views
-2

좌절 초보자 R에 해당 일치 카운트 열 df $ stuff 프레임.반복 처리는, 데이터 프레임의

목록의 각 문자열을 반복하고 해당 문자열이 df $ stuff에 나타나는 횟수를 계산하여 누적 방식으로 추가하고 싶습니다. 즉, "a"의 횟수와 "b"가 나타나는 횟수에 "c"가 나타나는 횟수를 더한 것입니다. 나는 count, table, aggregate 함수를 시도했는데 오류는 모두 발생합니다.

간단히 말해서이 작업을 수행하는 좋은 방법이 있습니다.

+0

스택 오버플로에 오신 것을 환영합니다! 이제 당신의 질문에 최선을 다해 답변 해 드리 겠지만 질문에 대답 할 수 있으려면'dput (variableName)'을 입력하고 콘솔 출력을 복사하여 여러분의 미래의 질문. 'R'에서 재현 가능한 예제를 만드는 방법에 대한 더 많은 정보를 원한다면 (그리고 당신의 질문에 답을 줄 수 있도록) [this post] (http://stackoverflow.com/questions/5963269/how-to-make- a-great-r-reproducible-example)을 사용합니다. – Barker

답변

0

데이터 견본없이 출력물을 원하는대로 대답하는 것은 어렵지만 시도해 보겠습니다. 당신이 strings와 함께 테이블에 table 다음 인덱스를 사용할 수 있습니다 df[["stuff"]]strings의 수를 얻으려면

df <- data.frame(stuff = sample(letters[1:5], 30, replace = TRUE)) 
strings <- letters[1:3] 

: 우선은 데이터가 어떻게 생겼는지에 추측을 할 것입니다.

table(df[["stuff"]])[strings] 
+0

이러한 솔루션은 여전히 ​​끔찍하게 복잡해 보입니다. 예제 데이터로 명확히 설명 드리겠습니다. – TPL

0

나는 어떤 질문을 받았는지에 대해 다른 생각을 가지고있었습니다. 그래서 나는 그것도 총을 줄 것이다.

strings = c("a", "b", "c") 
stuff = c("the cat", "the bat", "the dog") 
sapply(strings, function(s) length(grep(s, stuff))) 
a b c 
2 1 1 

각 문자열에 일치하는 숫자를 가져옵니다. 따라서

sum(sapply(strings, function(s) length(grep(s, stuff)))) 

은 모두 합계를 제공합니다.

원하는 것을 원하십니까?

+0

감사합니다. 귀하의 의견은 그것을 이해하는 데 도움이되었습니다. 데이터 세트에서 테이블 함수를 사용했을 때 결과에 ​​값과 함께 설명 문자열이 포함되어 있다는 사실에 매우 혼란 스러웠습니다. 예를 들어, 6이라는 값만있는 것이 아니라 "Some string I mate 6"입니다. 이중 대괄호 표기법을 사용하면 표에서 값을 빼낼 수 있습니다. – TPL

+1

@TPL 해결책을 찾았다면 대답으로 게시하여 동일한 문제가있는 다른 사람들을 도울 수 있도록해야합니다. – Barker

관련 문제