2012-03-08 2 views
0

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

item_size: numeric format # 
gl_code: string 
size_dimension: numeric in scientific notation 
quantity: number format #.# 

Я хочу, чтобы преобразовать форматы, так что это так:

item_size: numeric format # 
gl_code: string 
size_dimension: format #.### 
quantity: number format # 

Любые советы?

+0

Если ваши номера действительно являются числами (что является результатом 'str' на ваших данных?) , вы можете использовать 'sprintf' для их форматирования. –

ответ

0

Вы можете использовать формат, чтобы установить точность Вашего номера:

> f<-2.1212121546546546546 
> format(f,3) 
[1] "2.121" 

Вы можете создать функцию, которая применить форматирование вы хотите, и использовать lapply над списком:

> l<-c(1,2,3,4) 
> my_format<- function(x) { format(x,3)} 
> apply(l,my_format) 
[1] "1" "2" "3" "4" 

Более подробно в формате здесь: http: //rss.acs.unt.edu/Rdoc/library/tutoR/html/format.html

+0

1) Я думаю, вы имеете в виду sapply. apply требует поля, по которому применяется эта функция, в то время как sapply («simple» apply) возвращает вектор при вводе векторного ввода. 2) Вам не нужно вообще применять вашу функцию - формат векторизован: формат (l, 3) – danpelota

+1

'sapply' не« прост в применении », а скорее идет, а затем упрощается (подробности см. В документах) –

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