2016-10-31 2 views
0

Я пытаюсь использовать R для сохранения данных в определенном формате для другого программного обеспечения для анализа. Например, мои данные:R Программирование: сохранение данных с различной длиной пространства

Jane 2 3 0 1 
Joe 2 0 1 1 
John 1 0 0 0 
Jack 2 1 3 1 
Jay 0 0 0 0 

Я хотел бы сохранить данные в текстовый файл в следующем формате:

Jane 2301 
Joe 2011 
John 1000 
Jack 2131 
Jay 0000 

Если я использовал write.table(....., sep = ""), не будет никакого пространства между имена и номера. Как сохранить файл с пространством только между именем и цифрами? Большое спасибо!

ответ

0
Jane 2 3 0 1 
Joe 2 0 1 1 
John 1 0 0 0 
Jack 2 1 3 1 
Jay 0 0 0 0 

d <- read.table(con<-file("clipboard"), header = F) 

d1 <- data.frame(col1 = d$V1, 
       col2 = paste0(d$V2,d$V3,d$V4,d$V5)) 

write.table(d1, sep = " ", row.names = F) 
0

Вам необходимо будет изменить формат данных в R перед сохранением. Здесь я использую unite от tidyr нажать все эти столбцы вместе (он игнорирует только V1 в этом примере, сочетающий в себе все остальное)

Чтение выборка данных:

df <- 
    read.table(
    text = 
" 
Jane 2 3 0 1 
Joe 2 0 1 1 
John 1 0 0 0 
Jack 2 1 3 1 
Jay 0 0 0 0" 
) 

Run unite

df %>% 
    unite(singleData, -V1, sep = "") 

Возврат:

V1 singleData 
1 Jane  2301 
2 Joe  2011 
3 John  1000 
4 Jack  2131 
5 Jay  0000 
Смежные вопросы