forestsam
forestsam

Reputation: 49

Data frame output as a single line

I have a dataframe with multiple columns and rows. I am wanting to export this as a .txt file with all values on the same line (i.e one row), with individual values seperated by "," and data from the rows of the df separated by ":"

w<- c(1,5)
x<- c(2,6)
y<- c(3,7)
z<- c(4,8)
df<-data.frame(w,x,y,z)

the output would look like this

1,2,3,4:5,6,7,8:

Upvotes: 0

Views: 579

Answers (3)

akrun
akrun

Reputation: 886948

We can use str_c

library(stringr)
library(dplyr)
library(purrr)
df %>% 
    reduce(str_c, sep=",") %>%
    str_c(collapse=";")
#[1] "1,2,3,4;5,6,7,8"

Upvotes: 1

lroha
lroha

Reputation: 34376

If you want to write it to a file, use:

write.table(df, "df.csv", col.names = FALSE, row.names = FALSE, sep = ",", eol = ":")

If you want the output in R you can use do.call() and paste():

do.call(paste, c(df, sep = ",", collapse = ":"))

[1] "1,2,3,4:5,6,7,8"

Upvotes: 1

Ronak Shah
Ronak Shah

Reputation: 388817

We can combine data row-wise using apply and paste data together with collapse = ":".

paste0(apply(df, 1, toString), collapse = ":")
#[1] "1, 2, 3, 4:5, 6, 7, 8"

Upvotes: 2

Related Questions