Arrays 如何在[to subset]中传递/使用字符串

Arrays 如何在[to subset]中传递/使用字符串,arrays,r,subset,Arrays,R,Subset,如何将[中的字符串]传递/使用到子集,例如数组。对于4 dims数组,我一直在考虑类似的问题: inputDims <- ",,'CCC'," outputArray[parse(text=inputDims)] 上述方法不起作用-如何实现这一点 我对使用逻辑向量或矩阵不感兴趣[-如果可能的话,只使用示例中的字符串形式。这似乎是一个可怕的黑客行为。沿着这些思路进行操作时,很难看到值,但可能会澄清构建R函数调用所需的内容 使用“扫描”创建适当长度的字符向量。然后将其附加到列表中,其中数组

如何将[中的字符串]传递/使用到子集,例如数组。对于4 dims数组,我一直在考虑类似的问题:

inputDims <- ",,'CCC',"

outputArray[parse(text=inputDims)]
上述方法不起作用-如何实现这一点


我对使用逻辑向量或矩阵不感兴趣[-如果可能的话,只使用示例中的字符串形式。

这似乎是一个可怕的黑客行为。沿着这些思路进行操作时,很难看到值,但可能会澄清构建R函数调用所需的内容

使用“扫描”创建适当长度的字符向量。然后将其附加到列表中,其中数组是第一个元素。需要将空位置转换为TRUE,才能成功执行切片操作:

vec <- scan( text= inputDims, sep="," , what="")
arglist <- list(outputArray)
arglist[ 2:(length(vec)+1) ] <- as.list(vec)
arglist[ arglist==""] <- TRUE
# Using your example in the other question
> do.call("[", arglist )
   bb bbb
a1 NA  NA
a2 NA  NA
a3 NA  NA

对于下层选民:你能告诉我如何处理这个问题吗:因为这是一个更复杂的问题,这个问题是试图解决它…你想实现什么?如果你设置idx@roman luštrik:thx作为链接-我错过了这个链接。abind::asub似乎起到了作用。此外,我能够通过abind::asub查看它是如何实现的修订后的代码是该问题的答案,现在也是另一个形式@42-。很好的一个-谢谢!似乎对未使用的DIM使用TRUE是至关重要的-我没有弄明白。在转换为列表后执行此操作也是至关重要的,因为逻辑会在v模式的基础上被强制为“字符”或“数字”尝试将此任务分配到的目标。
getAnywhere( asub.default )