2012-02-06 5 views
4

У меня есть таблица, которая выглядит следующим образом:Специальные символы в языке R

1β    2β  
1.0199e-01  2.2545e-01  
2.5303e-01  6.5301e-01 
1.2151e+00  1.1490e+00 

и так далее ...

Я хочу сделать boxplot этих данных. Команды, которые я использую это:

pdf('rtest.pdf') 
w1<-read.table("data_CMR",header=T) 
w2<-read.table("data_C",header=T) 
boxplot(w1[,], w2[,], w3[,],outline=FALSE,names=c(colnames(w1),colnames(w2),colnames(w3))) 
dev.off() 

Проблема заключается в том, вместо символа бета (Р), я получаю две точки (..) в выходном сигнале.

Любые предложения для решения этой проблемы.

Заранее спасибо.

+2

Добавление 'check.names = FALSE' в ваши команды' read.table' может помочь – James

+0

@James: Почему бы не ответить? –

+0

@DWin Я не могу воспроизвести поведение, поэтому не уверен, что он сработает. – James

ответ

3

Это также работает

pdf('rtest.pdf') 
w1<-read.table("data_CMR",header=T) 
w2<-read.table("data_C",header=T) 
one<-expression(paste("1", beta,sep="")) 
two <- expression(paste("2", beta,sep="")) 
boxplot(w1[,], w2[,], w3[,],outline=FALSE, names=c(one,two)) 
dev.off() 
0

Это может быть проблема с кодировкой. Попробуйте добавить encoding='UTF-8' в свои read.table заявления.

w1<-read.table("data_CMR",header=T,encoding='UTF-8') 
+0

Я попробовал fileEncodings также как «ASCII», «UCS-2LE» и «latin1» и не смог реплицировать сообщаемое поведение, сообщаемое с любым из них, но затем я нахожусь на машине Mac/Unix. –

3

Предложение использовать check.names предотвратит эту директиву из «X» на «1 & beta;» и «2р», которые в противном случае имело бы место даже после того, как кодирование сортируется (с именами столбцов не должны начинаются с цифр. (Можно также просто использовал "имена" аргумент boxplot.)

w1<-read.table(text="1β    2β  
1.0199e-01  2.2545e-01  
2.5303e-01  6.5301e-01 
1.2151e+00  1.1490e+00",header=TRUE, check.names=FALSE, fileEncoding="UTF-8") 
boxplot(w1) 

enter image description here

Смежные вопросы