Мы можем использовать dcast
от data.table
library(data.table)
dcast(setDT(df1)[, newid := 1], newid ~ letters[rowid(newid)],
value.var = c('customer_id', 'long', 'lat'))[, newid := NULL][]
# customer_id_a customer_id_b long_a long_b lat_a lat_b
#1: 11111 11112 111.32 111.243 110.574 110.311
Или используйте reshape
из base R
df2 <- transform(df1, newid = 1)
df2$Seq <- with(df2, letters[ave(newid, newid, FUN = seq_along)])
reshape(df2, idvar = 'newid', timevar= 'Seq', direction = 'wide')[-1]
# customer_id.a long.a lat.a customer_id.b long.b lat.b
#1 11111 111.32 110.574 11112 111.243 110.311
данные
df1 <- structure(list(customer_id = 11111:11112, long = c(111.32, 111.243
), lat = c(110.574, 110.311)), class = "data.frame", row.names = c(NA,
-2L))