簡體   English   中英

如何克服R中的這種“下標超出范圍”錯誤?

[英]how to overcome this “subscript out of bound” error in R?

我有一個名為q1,q2,q3 .... q9,q10的10個數據幀的列表。 所有這些數據幀都具有相同的結構,分為兩列:“字”和“計數”。 現在我要打印前5行的值。 我還想打印for循環的迭代計數。 但是,當我運行以下for循環時,出現錯誤,例如nam [[“ word”]]中的錯誤:下標超出范圍

for(x in 1:10){
  for(y in 1:5){
  nam<-paste("q",x,sep = "")
  print(nam[["word"]][y])
  print(nam[["count"]][y]) 
  print(y)
}}

當我更改用於尋址數據幀的代碼時,出現錯誤,因為nam $ word中的錯誤:$運算符對原子向量無效

for(x in 1:10){
  for(y in 1:5){
  nam<-paste("q",x,sep = "")
  print(nam2$word[y])
  print(nam2$count[y])
  print(y)
}}

請建議我如何避免/克服此錯誤。 任何幫助表示贊賞。 謝謝阿曼

由於nam在這里只是一個字符,因此您需要使用get函數首先獲取實際的data.frame:

for(x in 1:10){
  for(y in 1:5){
  nam<-paste("q",x,sep = "")
  print(get(nam)[["word"]][y])
  print(get(nam)[["count"]][y]) 
  print(y)
}}

另一種實現您希望看到的結果的方法可以避免for循環:

lapply(1:10, function(i) head(get(paste0("q", i)), 5))

要么:

lapply(mget(paste0("q", 1:10)), head, 5) 

暫無
暫無

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

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