簡體   English   中英

在循環中創建許多變量 (R)

[英]Creating many variables in a loop (R)

我想通過'paragraphs'獲得一個go 一個包含許多段落的列表,並將每個單獨的段落保存為一個新變量,並嘗試編寫此代碼塊並收到以下錯誤:

for (value in paragraphs) {
     nam <- paste("p", value, sep = ".")
     value <- assign(nam, 1:value)
}

Error in 1:value : NA/NaN argument
In addition: Warning message:
In assign(nam, 1:value) : NAs introduced by coercion

關於從這里到 go 的任何建議?

我認為您正在嘗試創建許多名為p1p2p3等的變量,每個變量都寫有相應的段落。 在這種情況下,以下應該有效:

for (value in seq_along(paragraphs)) {
     nam <- paste("p", value, sep = ".")
     value <- assign(nam, paragraphs[value])
}

但是,將一堆變量寫入全局工作區並不是一個好主意,如果段落都在一個命名列表中會更好。 您說它們已經在列表中,但尚不清楚您是指實際的 R 列表還是向量。 如果它們已經在列表中,您可以這樣做:

p <- setNames(paragraphs, paste0("p", seq_along(paragraphs)))

這將允許您以p$p1p$p2等方式訪問每個段落。

如果段落在向量而不是列表中,您可以這樣做

p <- setNames(as.list(paragraphs), paste0("p", seq_along(paragraphs)))

得到相同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM