Решение
@ akrun прекрасно, но есть альтернатива без каких-либо дополнительных библиотек:
df1 <- data.frame(IDs = c('1,2', '3,4,5'), Names = c('a,b', 'c,d,e'), stringsAsFactors = FALSE)
df2 <- data.frame(sapply(sapply(df1, paste, collapse = ','), strsplit, ','))
Если вы хотите избежать всего этого в одной строке / как это работает:
step_1 <- sapply(df1, paste, collapse = ',') # squish the columns together into a single string
step_2 <- sapply(step_1, strsplit, ',') # split the new strings into vectors
df2 <- data.frame(step_2) # create a new df from those vectors