[R] Help with Sink Function
Erik Iverson
eriki at ccbr.umn.edu
Fri Jul 16 19:22:41 CEST 2010
This is not reproducible, and does not look minimal. You'll get better
answers, and probably solve many issues on your own, if you construct
small examples that illustrate the same problem you're having with your
real data.
Addi Wei wrote:
> iterations <- 100
> nvars <- 4
> combined <- rbind(scaleMiceTrain, scaleMiceTest)
> reducedSample <- combined
> reducedSample <- subset(reducedSample, select = -pID50)
> reducedSample <- subset(reducedSample, select = -id)
> for (i in 1:iterations)
> {
> miceSample <- sample(combined[,-c(1,2)],nvars, replace=FALSE)
>
> miceSample$pID50 <- combined$pID50
> miceTestSample <- miceSample[47:55,]
> miceTrainSample <- miceSample[1:46,]
>
>
> fit.kknn <- kknn(pID50~., miceTrainSample, miceTestSample)
> table(miceTestSample$pID50, fit.kknn$fit)
> (fit.train1 <- train.kknn(pID50~., miceTrainSample, kmax=15,
> kernel=c("rectangular"), distance=1))
>
> predictedTrain <- predict(fit.train1, miceTrainSample,
> miceTrainSample$pID50)
> pID50Train <- miceTrainSample$pID50
> lmTrain <- lm(predictedTrain~pID50Train)
> slm <- summary(lmTrain)
> str(slm)
> if (i == 1)
> {
> previousR2 <-slm$r.squared
> sink(file="R2outputKKNN.txt", append=TRUE)
> previousR2
> sink()
> }
> else if(i!=1)
> {
> currentR2 <- slm$r.squared
> if (previousR2 > currentR2)
> {
> currentR2 <- previousR2
> }
> if (previousR2 < currentR2)
> {
> sink(file="R2outputKKNN.txt", append=TRUE)
> currentR2
> sink()
> }
> }
> }
>
>
> In my code above, I can't get sink to work. In summary, I'm trying to write
> the first run's R2, which is called "previousR2" to file, and then anytime
> "currentR2" > "previousR2", I will write "currentR2" to file. After running
> the code above, my file R2outputKKNN.txt is empty...
>
> However, just running the code below writes / works fine:
> previousR2 <-slm$r.squared
> sink(file="R2outputKKNN.txt", append=TRUE)
> previousR2
> sink()
More information about the R-help
mailing list