簡體   English   中英

如果每個數據幀具有多於 n 行,則 R 循環用於在數據幀列表中添加數據幀

[英]R loop for adding dataframes in a dataframe list if each dataframe has more than n rows

我通常用 python 編碼,我正在努力解決這個問題。

我有一個名為 dataframe_name 的數據幀名稱列表,我想使用這個列表來調用一些數據幀對象。 之后,我想使用 if 循環來獲取行數等於 34 的數據幀並列出它們以創建數據幀對象列表。

dataframe_name<-c("x1","x2","x3","x4","x5","x6","x7")
dataframe_list<-list()

for(i in dataframe_name){
  if(nrow(get(i))==34){
    append(get(i),dataframe_list)
  }
}

當我運行腳本時,我收到此錯誤:

Error in if (nrow(get(i)) == 34) { : argument is of length zero

我所理解的是 nrow(get(i)) 似乎為空,但我不知道為什么。

謝謝你的幫助。

您可以嘗試以下 R 代碼:

dataframe_name<-c("x1","x2","x3")
x1 <- data.frame(a=c(1, 2))
x2 <- data.frame(a=c(1, 2))
x3 <- data.frame(a=rep(1, 34))
dataframe_list<-list()

for(i in seq_along(dataframe_name)){ #note the different syntax for for loops in R
  if(nrow(get(dataframe_name[i]))==34){
    dataframe_list[[dataframe_name[i]]] <- get(dataframe_name[i]) #new element of the list by the original name of the dataframe
  }
}

暫無
暫無

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

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