基本上我将两个以逗号分隔的字符串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;
答案 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"