See ?make.names, specifically the Details section which notes: A syntactically valid name consists of letters, numbers and the dot or underline characters and starts with a letter or the dot not followed by a number. Names such as ".2way" are not valid, and neither are the reserved words.
The character "X" is prepended if necessary. All invalid characters are translated to ".". A missing value is translated to "NA". Names which match R keywords have a dot appended to them. Duplicated values are altered by make.unique. Thus, your current column names in the header are not valid and the 'X' is prepended. You could feasibly set 'check.names' in read.table() to FALSE, however, that will introduce other issues. In terms of the 'name' column being converted to a factor, this is the default behavior. See ?read.table and take note of the 'stringsAsFactors' argument. A factor has an underlying data type of integer, which is why you get the behavior you observe: > typeof(factor("A")) [1] "integer" However: > is.integer(factor("A")) [1] FALSE HTH, Marc Schwartz On Fri, 2007-10-19 at 15:30 +0200, Neuer Arkadasch wrote: > Maybe I had to write that the original data what I read are > name 20_1_TT_Z_e4 20_2_TT_Z_e4 > A1 102 22 > A2 103 21 > A3 107 20 > > Thatk you! > > > Neuer Arkadasch <[EMAIL PROTECTED]> schrieb: > Hi everyone, I read the following data > > setwd("d:/") > > mydata <- read.table("mydata.txt", header=T) > > attach(mydata) > > mydata > name X20_1_TT_Z_e4 X20_2_TT_Z_e4 > 1 A1 102 22 > 2 A2 103 21 > 3 A3 107 20 > > name > [1] A1 A2 A3 > Levels: A1 A2 A3 > > mode(name) > [1] "numeric" > > Why name is a factor and numeric? and why I do have X before the > variable namin X20_1_TT_Z_e4? Is it possbile to have it as > 20_1_TT_Z_e4 ? ______________________________________________ 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.