簡體   English   中英

R循環引用多個數據幀

[英]R Loop to reference multiple dataframes

我正在嘗試創建一個循環,以從R中的多個數據幀中提取數據,然后將它們重新綁定到一個數據幀中。 數據幀的名稱均相同,並在末尾附加增量(split1,split2,split3 ...)以區分。

每個數據框都包含一個數字列表,我希望將其附加到URL。

到目前為止,我建立的循環如下:

requester_url <- "https://example.url/users/show_many/ids="
for(i in 1:7 {
  splitname <- paste0('split',i)
  requester_ids <- paste0(splitname, collapse = ",")
  requester_url <-paste0(requester_url,requester_ids)
}

如果我分解了我希望元素在循環中執行的操作,這可能會更有幫助。 在下面的部分中,我想創建一個新變量,它是應用了增量的數據框名稱。

splitname <- paste0('split',i)

我希望它會輸出“ split1,split2,split3 ...”,然后在循環的下一部分中引用它。

requester_ids <- paste0(splitname, collapse = ",")

這應該提取循環數據框名稱中包含的數字,並用逗號分隔數字以折疊。 我知道的崩潰是有效的,因為我在循環外使用了多次。

然后,最后,循環的最后一部分應采用url變量,並在上一行中附加所有拉出的ID,並以“ https://example.url/users/show_many/ids=11111,22222,33333 ”結尾。 ......”

我認為問題出在第一行,它將數據幀名稱存儲為字符而不是變量名稱。

一天來,我一直在為解決該問題而絞盡腦汁,但是我對循環運動非常陌生,這超出了我的技能水平。

正如您所指出的,問題出在使用表的名稱字符串,而不是表本身。 您只需要“獲取”即可使代碼正常工作。

split1 <- 100:109
split2 <- 200:209
split3 <- 300:309
split4 <- 400:409
split5 <- 500:509
split6 <- 600:609
split7 <- 700:709
requester_url <- "https://example.url/users/show_many/ids="
for(i in 1:7) {
  splitname <- paste0('split',i)
  requester_ids <- paste0(get(splitname), collapse = ",")
  if (i>1) sep <- ',' else sep <- ''
  requester_url <- paste(requester_url,requester_ids,sep=sep)
}

但是更好的解決方案是根本不做任何循環:首先合並(rbind)這7個數據集,然后折疊結果。

暫無
暫無

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

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