2013-03-06 1 views
-1

그래서 내 데이터는이 그래서 속도의는 기본적으로 그냥 목록R을 사용하여 다른 범위의 주파수를 가져 오는 방법은 무엇입니까?

Velocity(m/s) 
1.2 
1.4 
2.3 
1.6 
4.5 
3.5 
1.7 
4.5 
3.7 

내가 다른 범위를 얻기 위해 R을 사용하려는 것 같습니다 ... 다른 사람들의 속도를 의미 데이터 세트를 가지고 특정 범위의 주파수는 ... 예를 들어 나는

그래서 나는 다양한 범위의 주파수 열을 얻으려면 ...

Velocity(m/s)  Frequency 
1.0 - 3.0   7 
1.5- 2.0    4 

아래와 출력이 유사합니다. 저는 R에 정말 익숙하며 일부 데이터를 분석하는 데 정말로 사용하고 싶습니다.

+2

범위가 다양 함 이상 –

+1

@ LucianoSelzer의 의견을 분명히 할 수 있습니까? – Arun

+0

나는 명확한 표결에 기꺼이 답할 것이다. – Arun

답변

3

cuttable의 조합으로 쉽게 수행 할 수 있습니다. 우리는 휴식 표시 할 위치

r = runif(100, 0, 100) 

다음으로 100 & 0 사이의 첫 번째 100 개 난수를 생성 할 수 있습니다. 그런 다음 주파수를 계산하기 위해 table 명령을 사용

cut(r, breaks=seq(0, 100, 10)) 

: 0, 10, ..., 100 :이 예제에서, 우리가 그들을 원하는 중복 휴식을 원하는

table(cut(r, breaks=seq(0, 100, 10))) 

당신은 것, 그래서 나는 그런 다음 결과를 결합 즉, 두 번

t1 = table(cut(r, breaks=seq(0, 100, 10))) 
t2 = table(cut(r, breaks=seq(0, 100, 5))) 

table 명령을 사용

c(t1, t2) 
나는 각 범위에 대한 최소 및 최대 속도와 data.frame 만들 것
+0

감사합니다. csgillespie ....하지만이 오류가 있습니다. cut.default (f, breaks = seq (0, 4, 2)) 오류 : 'x'는 숫자 여야합니다. –

+0

실제 데이터가 없으면, 잘못된. 내 모범이 당신에게 효과가 있습니까? 귀하의 경우, 나는'f'가 그 안에 성격을 가지고 있다고 의심합니다. – csgillespie

1

:

my.summary <- data.frame(vel.lo = c(1, 1.5), 
         vel.hi = c(3, 2)) 

그런 다음 주파수를 카운트 plyradply를 사용

library(plyr) 
adply(my.summary, 1, transform, freq = sum(dat$Velocity > vel.lo & 
              dat$Velocity <= vel.hi)) 
# vel.lo vel.hi freq 
# 1 1.0  3 5 
# 2 1.5  2 2 

참고 : 또한 기본 패키지의 apply을 사용할 수 있지만 열 이름을 삭제하기 때문에 adply은 b를 읽는 코드를 제공합니다. 이상 :

my.summary$freq <- apply(my.summary, 1, function(x)sum(dat$Velocity > x[1] & 
                 dat$Velocity <= x[2])) 
관련 문제