簡體   English   中英

如何 append 到 function 循環中的列表(附加不起作用?)

[英]How to append to a list in a function loop (append not working?)

我正在嘗試在df$RecipientLastName中的唯一值循環中列出一個列表。 我為此創建了一個uniqueid col,然后創建了一個空列表並嘗試將 R 到 append 每個值從uniqueid列表到一個名為li的列表(以便用戶可以輸入參與者的數量)。 這就是代碼的外觀。

uniqueid <- unique(df$RecipientLastName, incomparables = FALSE, fromLast = FALSE, nmax = NA)
uniqueid2.list <- vector(mode = "list", length = 0)

loops <- function(numpar) {
  for (i in 1:numpar) {
    parID <- uniqueid[i]
    li <- append(uniqueid2.list, parID)
  }
  return(li)
}

loops(9)

這是 output,當我使用編號為 9 的循環 function 時得到的。136 是 uniqueid 中第 9 項的值。 我希望它返回列表的前 9 個值。

[[1]]
[1] 136

您將在循環中的每次迭代中覆蓋li值,因此您只能獲得最后一個值。

uniqueid <- unique(df$RecipientLastName, incomparables = FALSE, 
                   fromLast = FALSE, nmax = NA)


loops <- function(numpar) {
  uniqueid2.list <- vector(mode = "list", length = numpar)
  for (i in 1:numpar) {
    parID <- uniqueid[i]
    uniqueid2.list[[i]] <- append(uniqueid2.list, parID)
  }
  return(uniqueid2.list)
}

但是你在這里並不需要一個循環。 你可以做:

result <- uniqueid[1:numpar]
#If you want it as a list
result <- as.list(result)

暫無
暫無

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

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