R - 将逗号分隔字符串中的值转换为2D数组

时间:2016-06-16 17:28:45

标签: r csv multidimensional-array

基本上我将两个以逗号分隔的字符串args发送到我的R脚本,并希望编写R代码,将它们转换为1或2-D数组。

我用以下args调用我的R脚本:

Rscript myscript.R "1,5" "a,b,c,,e,f,g"

我有代码将第一个arg转换为1-D数组,如下所示:

array1 <- lapply(strsplit(args[1], ','), as.character)[[1]]]

这导致

  

[1]&#34; 1&#34; &#34; 5&#34;

我对此很满意,以下是我需要帮助的地方:

我需要代码将我的第二个arg转换为二维数组。请帮忙! 这是所需的输出:

  

[1]&#34; a&#34; &#34; B&#34; &#34; C&#34;   [2]&#34; e&#34; &#34; F&#34; &#34; G&#34;

2 个答案:

答案 0 :(得分:0)

两步分裂怎么样?

strsplit(strsplit("a,b,c,,e,f,g", ",,")[[1]], ",")
[[1]]
[1] "a" "b" "c"

[[2]]
[1] "e" "f" "g"

如果您更喜欢矩阵:

do.call(rbind, strsplit(strsplit("a,b,c,,e,f,g", ",,")[[1]], ","))
     [,1] [,2] [,3]
[1,] "a"  "b"  "c" 
[2,] "e"  "f"  "g" 

答案 1 :(得分:0)

我们也可以

v1 <- strsplit("a,b,c,,e,f,g", ",")[[1]]
split(v1[v1!=''], cumsum(v1=='')[v1!=''])
#$`0`
#[1] "a" "b" "c"

#$`1`
#[1] "e" "f" "g"
相关问题