-1

I need to define a function f(x,y) such that:

x = "col1,1,2,3,4"
y = "col2,a,b,c,d"

becomes:

# A tibble: 4 x 2
   col1  col2
  <int> <chr>
1     1     a
2     2     b
3     3     c
4     4     d

Any thoughts? Thanks.

A5C1D2H2I1M1N2O1R2T1
  • 190,393
  • 28
  • 405
  • 485
skatofia
  • 17
  • 4

1 Answers1

1

The most obvious idea that comes to mind is to split the input by comma, use paste to combine the output into a single string, and read that using read_csv.

Example:

paste(do.call(paste, c(strsplit(c(x, y), ","), sep = ", ")), collapse = "\n")
# [1] "col1, col2\n1, a\n2, b\n3, c\n4, d"

library(tidyverse)
read_csv(paste(do.call(paste, c(strsplit(c(x, y), ","), sep = ", ")), collapse = "\n"))
# # A tibble: 4 x 2
#    col1 col2 
#   <int> <chr>
# 1     1 a    
# 2     2 b    
# 3     3 c    
# 4     4 d  

From there, I hope you're able to convert the approach to a function.

A5C1D2H2I1M1N2O1R2T1
  • 190,393
  • 28
  • 405
  • 485