我試圖逐個遞歸地提取每個元素以將其放置在循環函數中。下面的表達式中的項目,我從中獲取矢量中的以下對象。我想提取每個數字對象的內容。我似乎有重大問題,因爲我花了一天的時間嘗試這個練習而沒有結果。我已經使用noquote從「」中跳出,但這也不起作用,因爲它將noquote對象中的對象進行轉換。將主對象轉換爲數字也不起作用,將主對象內的元素轉換爲數字也不起作用。從字符對象列表中提取數字對象
as.vector(paste("q", paste("[[",1:length(q),"]]"), sep="", collapse=","))
[1] "q[[ 1 ]],q[[ 2 ]],q[[ 3 ]],q[[ 4 ]],q[[ 5 ]],q[[ 6 ]],q[[ 7 ]],q[[ 8 ]],q[[ 9 ]],q[[ 10 ]],q[[ 11 ]],q[[ 12 ]],q[[ 13 ]],q[[ 14 ]],q[[ 15 ]],q[[ 16 ]],q[[ 17 ]],q[[ 18 ]],q[[ 19 ]],q[[ 20 ]],q[[ 21 ]]"
較短的例子
q<-list(c(1,3,5,7,8),c(2,4,6,7,8),c(1,2,5,5,8))
as.vector(paste("q", paste("[[",1:length(q),"]]"), sep="", collapse=","))
[1] "q[[ 1 ]],q[[ 2 ]],q[[ 3 ]]"
編輯:
沒有考慮的列表,並從表達產生將如所希望的輸出如下可能的錯誤:
d<- as.vector(paste("q", paste("[[",1:length(q),"]]"), sep="", collapse=","))
d
[1] "q[[ 1 ]],q[[ 2 ]],q[[ 3 ]]"
d[[1]]
[1] 1 3 5 7 8
d[[2]]
[1] 2 4 6 7 8
d[[3]]
[1] 1 2 5 5 8
您提供的'q'的輸出值是多少? – josliber
問題是你有一個字符向量'「q [[1]],q [[2]],q [[3]]」'並且你想解析它以提取'q'的對應值。? – user20650
如果是這樣,'lapply(strsplit(d,「,」)[[1]],function(x)eval(parse(text = x)))'是一種方法......但我會重新考慮你的工作流程嘗試並避免生成此字符串 – user20650