On Feb 24, 2010, at 9:18 PM, Jon Erik Ween wrote:


David

Thanks for your suggestions. "Reproducible examples", my datasets are too
big so I'm not sure what you would want to see.

I _wanted_ to see a datasset that had maybe 10 variables and 20 rows and a stripped down varslist that had maybe half that number of variable names.


 Anyway, does this help:

dataset:
Perf_Index Age risk_score gender hight IQ ...
12 78 10 m 6 110 ...
10 77 9 f 6 97 ...
5 64 f 13 5 120 ...
...

You _could_ have offered str(dataset)


varslist:
Perf_Index Age IQ ...


As you suggested

str(varslist)
'data.frame':   1 obs. of  54 variables:
$ V1 : Factor w/ 1 level "Perf_Index": 1
$ V2 : Factor w/ 1 level "Age": 1
$ V3 : Factor w/ 1 level "risk_score": 1
...

And it does explain why you were not getting the results you were expecting. "varslist" is not a simple list. You have a dataframe (a special sot of list) of 54 single element factors, rather than either a vector with 54 elements or a list with 54 character elements.


for (i in varslist){
        v<-mean(Dataset[,i])
        print(v)
        }

gives:

source("/Users/jween/Desktop/test.R")
[1] 20016.06
[1] 20016.06
[1] 20016.06
[1] 20016.06
[1] 20016.06
[1] 20016.06
... 54 instances, the number of variables in varslist

Not correct, obviously.


Obviously, ... but not my fault. You are the one who constructed varslist that way. The factors are being interpreted as numbers and since each of them have only a single element, they are all the number 1. You might try to wrap as.character() around the call to varslist in the "in" phrase. That way the _levels_ of the factors would be returned, rather than their representation index.

--
David.

I'm guessing I've not read varslist in correctly (I
used read.table).

Cheers

Jon
--

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to