在变量 r 中使用 i

Use i in variable r

我想使用 i 变量循环这段代码,每次迭代将 FAQ$q1 更改为 FAQ$q2FAQ$q3。我该怎么做?

for(i in 1: 19){
  yes <- table(FAQ$q1)[1]
  no <- table(FAQ$q1)[2]

  b <- barplot(table(FAQ$q1),
          main="Did you have any difficulties using the chatbot?",
          ylab="Count",
          names.arg = c("yes", "no"),
          col="blue",
          ylim = c(0,28))
  abline(v=c(1.3) , col="grey")
  text(b, y=c(yes+1,no+1), paste("n: ", c(yes,no) , sep=""), cex=1, col = "red")
}

我们可以使用 paste 为列名创建一个字符串并使用 [[ 提取(因为 $ 将尝试逐字匹配)。如果我们想将绘图重定向到单个 pdf,则将绘图写入 pdf。在代码中,table 函数多次应用于同一列,而是执行一次并创建一个对象 ('tbl1'),该对象在必要时重复使用

pdf("path/to/file.pdf")
for(i in 1:19){
  colnm <- paste0("q", i)
  tbl1 <- table(FAQ[[colnm]])
  yes <- tbl1[1]
  no <- tbl1[2]

  b <- barplot(tbl1,
          main="Did you have any difficulties using the chatbot?",
          ylab="Count",
          names.arg = c("yes", "no"),
          col="blue",
          ylim = c(0,28))
  abline(v=c(1.3) , col="grey")
  text(b, y=c(yes+1,no+1), paste("n: ", c(yes,no) , sep=""), cex=1, col = "red")
}
dev.off()

paste0paste 的区别在于 sep。默认情况下 paste 使用 sep = " """paste0