[英]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.