У меня есть список смешанных типов, которые я хотел бы свернуть в аккуратную строку через запятую для чтения в другом месте.Вот MWE:
a <- "name"
b <- as.vector(c(10))
names(b) <- c('s')
c <- as.vector(c(1, 2))
names(c) <- c('p1', 'p2')
d <- 20
r <- list(a, b, c, d)
r
# [[1]]
# [1] "name"
#
# [[2]]
# s
# 10
#
# [[3]]
# p1 p2
# 1 2
#
# [[4]]
# [1] 20
Я хочу это:
# [1] '"name","10","1,2","20"'
Но это насколько я понял:
# Collapse individual elements into individual strings.
# `sapply` with `paste` works perfectly:
> sapply(r, paste, collapse = ",")
# [1] "name" "10" "1,2" "20"
# Try paste again (doesn't work):
> paste(sapply(r, paste, collapse = ","), collapse = ',')
# [1] "name,10,1,2,20"
Я пытался paste0
, cat
безрезультатно.Единственный способ сделать это - использовать write.table
и передать ему буферную память.Этот способ слишком сложен и подвержен ошибкам.Мне нужно, чтобы мой код работал на кластере с MPI.