솔직히 제목이 정확하게 무슨 일이 일어나는지 설명하지만 나는 여기있다.Sapply는 벡터를 벡터 벡터로 바꾸고 있습니다. 나는 생각한다.
은 가정하자 난 다음 함수를 호출하고 일부 데이터를 정상화 sapply 사용
> str(Tempcheck)
'data.frame': 1872 obs. of 3 variables:
$ Time : POSIXlt, format: "2013-07-10 14:26:40" "2013-07-10 14:26:43" "2013-07-10 14:26:50" "2013-07-10 14:26:53" ...
$ rawTemp : int 107461 108551 109940 110258 110740 110890 111096 111164 111238 111296 ...
$ rawConductivity: int 969903 1287631 1298627 1292063 1303909 1297249 1305610 1297557 1305070 1298703 ...
다음 개체 "Tempcheck"로 시작합니다.
TCalibration<- function(x){ #this function normalizes data based on the calculated y intercept and slope
dc <- (x*((Tempcor[[2]])))+((Tempcor[[1]])) # y = 1/m*x + -1/b
dc <- dc[[1]]
}
##calibrates rawTemp into real temp
Tempcheck$Temp <- sapply(Tempcheck[[2]],TCalibration)
Tempcor는 선형 모델의 계수를 저장하는 이전 개체입니다. 관련성이있는 경우 나중에 게시 할 수 있습니다.
> str(Tempcheck)
'data.frame': 1872 obs. of 4 variables:
$ Time : POSIXlt, format: "2013-07-10 14:26:40" ...
$ rawTemp : int 107461 108551 109940 110258 110740 110890 111096 111164 111238 111296 ...
$ rawConductivity: int 969903 1287631 1298627 1292063 1303909 1297249 1305610 1297557 1305070 1298703 ...
$ Temp : num 23.6 23.9 24.3 24.4 24.5 ...
이것은 모두 훌륭하고 멋쟁이입니다. UNTIL ....
나는
ConductivityCorrection <- function(x){
t <- 1+.02*(Tempcheck$Temp-25)
EC25 <- (x/t)
}
그런 다음 나는 코드의 이전 라인을 가지고 같은 일을 얻기 위해 기다리고 있었다 Tempcheck
에 sapply 다시Tempcheck$rawCEC <-sapply(Tempcheck[[3]] ,ConductivityCorrection)
를 사용하는 다른 함수를 호출 그러나 이상한 일이 일어났습니다.
str(Tempcheck$rawCEC)
num [1:1872, 1:1872] 998390 991974 983917 982090 979335 ...
이 벡터의 길이는 1872^2입니다. 나는 이상하다고 생각했습니다. 내 suspision은 내가이에게 다른 방법을 할 수있는 알고있는 라인
t <- 1+.02*(Tempcheck$Temp-25)
에서 오는 것입니다,하지만 난 적용 제품군을 사용하고 더 잘 배울 내 자신을 강제로 노력하고있어. 어쨌든 도움을 주시면 감사하겠습니다. 고맙습니다!
이 코드 조각이 내 문제를 해결한다는 것을 알고 있습니다.
Tempcheck$alphaT <- 1+.02*(Tempcheck$Temp-25)
Tempcheck$rawCEC <- Tempcheck[[3]]/Tempcheck$alphaT
내가 함수로이 전원을 켜고 Tempcheck의 열에서 각 요소에 적용 할 수있는 방법을 찾고 있었다 [[3]]
당신의 함수'CondictivityCorrection'는 명시 적으로 아무것도 반환하지 않는다. 사실, 나는 당신이 무엇을 반환하는지에 대한 두 가지 기능 모두와 혼동을 느낀다고 생각합니다. – joran
함수가 수행해야하는 작업을 정확히 파악하는 데 필요한 정보가 충분하지 않지만 여기서 함수를 적용 할 필요가 거의 없다는 것은 거의 확실합니다. 이것이 모두 쉽게 벡터화되어야한다고 확신합니다. – joran
나는이 작업들을 벡터화 할 수 있다는 것을 알았지 만 기능을 제대로 만들고 사용하는 방법을 알아 내려고 노력했다. 너는 무엇을 제안 하겠는가? – ZDwhite