[R] factor or character

Rui Barradas ruipbarradas at sapo.pt
Wed Oct 24 13:03:48 CEST 2012


Hello,

Sorry but, what doesn't work? What is the error message or result?
As for stringsAsFactors not keeping character strings as character 
strings maybe this is from calling data.frame from within the 
environment used by with(), but you can use other ways of converting to 
character strings, such as

mod5.sig$snps <- as.character(mod5.sig$snps)

before subsetting. And you can also check the result of

colnames(todos) %in% mod5.sig$snp

What does this give you?

Hope this helps,

Rui Barradas
Em 24-10-2012 11:58, Silvano Cesar da Costa escreveu:
> Hi,
>
> still doesn't work.
>
>
>> Hello,
>>
>> I've just seen the error, you are _not_ searching for colnames in
>> mod5.sig$snps. Corrected:
>>
>> Selec = todos[ , colnames(todos) %in% mod5.sig$snps]
>>
>> Hope this helps,
>>
>> Rui Barradas
>> Em 23-10-2012 21:17, Silvano Cesar da Costa escreveu:
>>> Hi Rui,
>>>
>>>
>>> it doesn't work:
>>>
>>>> (mod5.sig = with(mod5, data.frame(snps = SNP[pvalor<5e-8],
>>> stringsAsFactors=FALSE)))
>>>> str(mod5.sig)
>>> 'data.frame':	76 obs. of  1 variable:
>>>    $ snps: Factor w/ 220 levels "rs10058955_A",..: 89 59 88 73 40 35 97
>>> 55
>>> 87 204 ...
>>>> Selec = todos[ , colnames(todos) %in% mod5.sig]
>>>> head(Selec)
>>> data frame com 0 colunas e 6  linhas
>>>
>>>
>>> the problem is the same.
>>>
>>> Thanks,
>>>
>>>
>>>
>>>
>>>> Hello,
>>>>
>>>> When creating the data.frame of snps use the option stringsAsFactors =
>>>> FALSE
>>>> I believe your error comes from the fact that you are trying to find
>>>> colnames in a variable coded as integers (a factor, like str shows).
>>>>
>>>> Hope this helps,
>>>>
>>>> Rui Barradas
>>>> Em 23-10-2012 19:02, Silvano Cesar da Costa escreveu:
>>>>> Hi,
>>>>>
>>>>> The program below work very well.
>>>>>
>>>>> (snps = c('rs621782_G', 'rs8087639_G', 'rs8094221_T', 'rs7227515_A',
>>>>> 'rs537202_C'))
>>>>> Selec = todos[ , colnames(todos) %in% snps]
>>>>> head(Selec)
>>>>>
>>>>>
>>>>> But, I have a data set with 1.000 columns and I need extract 70 to use
>>>>> (like snps in command above).
>>>>>
>>>>> This 70 snps are in a file. So I create a file to extract them with
>>>>>
>>>>> (mod5.sig = with(mod5, data.frame(snps = SNP[pvalor < 5e-8])))
>>>>> str(mod5.sig)
>>>>> (snps = (mod5.sig))
>>>>>
>>>>> The structure is:
>>>>> 'data.frame':	76 obs. of  1 variable:
>>>>>     $ snps: Factor w/ 220 levels "rs10058955_A",..: 89 59 88 73 40 35
>>>>> 97
>>>>> 55
>>>>> 87 204 ...
>>>>>
>>>>> But it doesn't work. The output is:
>>>>>> Selec = todos[ , colnames(todos) %in% snps]
>>>>>> head(Selec)
>>>>> data frame with 0 columns and 6 rows
>>>>>
>>>>> What's is wrong?
>>>>>
>>>>> Thanks a lot,
>>>>>
>>>>>
>>>>> ---------------------------------------------
>>>>> Silvano Cesar da Costa
>>>>>
>>>>> Universidade Estadual de Londrina
>>>>> Centro de Ciências Exatas
>>>>> Departamento de Estatística
>>>>>
>>>>> Fone: (43) 3371-4346
>>>>>
>>>>> ______________________________________________
>>>>> R-help at 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.
>>>>
>>> ---------------------------------------------
>>> Silvano Cesar da Costa
>>>
>>> Universidade Estadual de Londrina
>>> Centro de Ciências Exatas
>>> Departamento de Estatística
>>>
>>> Fone: (43) 3371-4346
>>> ---------------------------------------------
>>>
>>
>>
>
> ---------------------------------------------
> Silvano Cesar da Costa
>
> Universidade Estadual de Londrina
> Centro de Ciências Exatas
> Departamento de Estatística
>
> Fone: (43) 3371-4346
> ---------------------------------------------
>




More information about the R-help mailing list