티스토리 뷰
프로그래밍의 핵심은 loop를 돌리는 것이다. loop는 기계맛이 난다. 하지만 빠르다.
하지만 꼭 loop를 써야 하는 것은 아니다. 그냥 다 쳐 버리는 거다.
예를 들면, theMat.i이라는 matrix에 apply를 통해 mean, sd, count.mid, count.mid3, entropy.freq, rle.max, lz란 함수를 적용하고 싶다면,
theMat.i.mean[,i] = apply(theMat.i, 1, mean)
theMat.i.sd[,i] = apply(theMat.i, 1, sd)
theMat.i.count.mid[,i] = apply(theMat.i, 1, count.mid)
theMat.i.count.mid3[,i] = apply(theMat.i, 1, count.mid3)
theMat.i.entropy[,i] = apply(theMat.i, 1, entropy.freq)
theMat.i.mrle[,i] = apply(theMat.i, 1, rle.max)
theMat.i.lz[,i] = apply(theMat.i, 1, lz)
이걸 루프로 돌린다면,
func=lis(mean, sd, count.mid, count.mid3, entropy.freq, rle.max, lz)
theMat.i.func=list()
for (i in 1:length(func))
theMat.i.func[[i]]=apply(theMat.i, 1, func[[i]])
훠얼씬 짧다고 느끼지 못할지도 모르지만, 적용해야 할 function이 많아지고, 적용해야할 matrix도 많아지면, 따라서 loop의 갯수가 많아지면 얘기가 달라진다.
따라서 우린 loop를 쓴다.
문제는 이렇게 loop를 쓰면 나중에 읽기도 힘들고(물론 사람이),
수정할 때도 자꾸 헷갈리게 된다는 것.
따라서 loop를 돌리지 않고 위의 source처럼 다 쳐 버리기도 한다.
"몇 개의 loop까지 손으로 쳐 봤어?"
난 오늘 3개까지 쳤다. 역시 프로그래밍은 노가다.
손으로 하던, 머리로 하던...
- Total
- Today
- Yesterday
- How We Decide
- 이기는 결정
- 추단법
- 접근 프레임
- 의미중심 프레임
- 회피 프레임
- Technology is new oil
- 뇌과학
- 티모시 윌슨
- Edward Russo
- 탁월한 결정의 비밀
- Schoemaker
- 기본 소득
- 절대 프레임
- 앤드류 양
- 긍정 언어
- 비교 프레임
- 자신있게 결정하라
- 준비 프레임
- 용어정리
- 모짜르트 효과
- 닮고 싶은 사람
- Free Dividend
- 지금여기 프레임
- 절차중심 프레임
- Andrew Yang
- 의사결정
- 리더십
- Decisive
- 열린마음
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |