2014-06-16 3 views
-2

어쩌면 나는 이것을 너무 열심히 생각하고있다. for 루프를 만들 필요가있다. & if 문 내 데이터 집합에서 가장 높은 값을 찾는다. 우리는 또한 그 날에 &을 출력하는 print 문을 써야합니다. 초기 행렬에는 93 행의 & 4 개의 열이 있습니다. 4 열에 필요한 데이터가 있습니다. 날짜는 1 열에 있습니다.for loop for R if & print 사용하기

전혀 프로그래밍 할 필요가 없습니다.

for (counter in 1:93) { 
    if (only.data >= data[,4]) 
    print (only.data) 
} 

방법 : 여기 for & if 문에서 내 미약 한 시도가

only.data <- c(data[,4]) 

:

내가 데이터 칼럼에서 벡터를 만들어 : 지금까지 내가 가지고 무엇을 나는이 방법을 사용하여 가장 높은 가치를 뱉어 낼 수 있습니까? 그것은 최대 값을 93 번 인쇄하며 원하는 것은 아닙니다. only.data 벡터를 만들어야합니까, 아니면 원래의 매트릭스를 사용할 수 있습니까? 또한 가장 높은 값 옆의 해당 날짜를 인쇄해야합니다.

ps - 제가 훨씬 더 빠를 수있는 max 기능을 사용할 수 있다는 것을 알고 있지만 그게 과제가 아닙니다.

답변

2
당신이 때문에 내가 여기에 전체 솔루션을 게시하지 않습니다,하지만

  1. data[,4] 이미 벡터이다 올바른 방향을 제시해주기, 부정 행위와 전혀 c()을 사용할 이유가없는 것 같다

    그 위에. 새로운 객체 only.data에 저장할 이유가 없지만 각 루프에서 색인을 생성 할 필요가 없기 때문에 루프를 더 빠르게 만들 수 있습니다.

  2. 루프의 개념은 인덱스를 사용한다는 것입니다 (꼭 할 필요는 없지만 그렇게하지 않는 이유는 없습니다). 따라서 색인을 for()에 지정합니다. 인덱스 (counter)를 지정했지만 사용하지 않았으므로 루프는 수행중인 작업에 상관없이 only.data을 인쇄합니다.
  3. 귀하의 모든 if 행함은 따라서, 각 반복에서 하나의 값을 비교로
  4. 은, 루프에서 최대가 그런 뻔한 일이 아니다 계산하려면 (분명히 필요가있는) 모든 반복에 only.data >= only.data 있는지 확인하는 것입니다 전략이 필요해. 예를 들어, 당신은 더 큰 있는지 확인하는 only.data[counter]에 대한 각 반복에 비교됩니다 더미 변수를 만든 다음 경우에 대체 내 마지막 점을 설명하기 위해

아니다, 장난감 예를 고려할 수

set.seed(1) 
only.data <- sample(10,10) 
only.data 
#[1] 3 4 5 7 2 8 9 6 10 1 
당신은 최대 값이 9 위치에 있는지, 지금 우리는 더미 변수에이 벡터의 첫 번째 값을 할당하고 최대

을 찾기 위해 for 루프를 사용하려고합니다 볼 수 있습니다

dummy <- only.data[1] 
dummy 
## [1] 3 

for (counter in only.data) { 
    if (counter > dummy) dummy <- counter 
} 

dummy 
## [1] 10 
+0

많은 도움이되었습니다. 정말 고맙습니다! – user3746369

+0

@ user3746369 답변이 도움이된다면 답을 수락하면 감사하겠습니다. 이것은 향후 독자들에게 솔루션의 가치에 대한 단서를 제공 할 것입니다. 이 도움말 페이지를 참조하십시오 : [누군가 내 질문에 대답하면 어떻게해야합니까?] (http://stackoverflow.com/help/someone-answers) – Jaap