在for循环中使用“粘贴”

在for循环中使用“粘贴”,r,for-loop,expression,paste,R,For Loop,Expression,Paste,我试图在R中的for循环中使用paste,为ggplot创建新的表达式。我目前有: x_axis_label <- list() for (i in seq_len(4)) { x_axis_label[[i]] <- expression(paste("10"^as.character(i))) } 是否可以对循环使用并在R中的表达式中粘贴值 编辑:我想要一个类似于以下的向量: x_axis_label <- c(expression(paste(&

我试图在
R
中的
for循环中使用
paste
,为
ggplot
创建新的
表达式。我目前有:

x_axis_label <- list()
for (i in seq_len(4)) {
  x_axis_label[[i]] <- expression(paste("10"^as.character(i)))
}
是否可以对循环使用
并在
R
中的
表达式中粘贴值

编辑:我想要一个类似于以下的向量:

x_axis_label <- c(expression(paste("10"^"2")),
                  expression(paste("10"^"3")),
                  expression(paste("10"^"4")))
expression(paste("10"^"2"), paste("10"^"3"), paste("10"^"4"))

x_axis_label代替表达式,您可以将所有内容放入一个字符串中,然后告诉相应的ggplot函数(注释、geom_文本或任何内容)它应该解析该字符串。
例如


x\u-axis\u标签与您以前的问题不一样吗?我想是的,但它是否仍然适用于
粘贴
?您不需要
粘贴
<代码>x轴标签[[i]]它似乎不起作用。我还想得到一个向量,比如
c(表达式(粘贴(“10”^“2”))、表达式(粘贴(“10”^“3”)、表达式(粘贴(“10”^“4”))
你能更新你的帖子以包含你的预期输出吗?谢谢,问题是我希望每个x轴记号都有上面提供的标签。我知道有一个函数
scale\u x\u log10
,但我不确定如何从10^2开始到10^4。你难道不能通过
ggplot()+scale\u y\u continuous(breaks=c(10^2,10^3,10^4))
来确定轴的刻度吗?如果您需要文本采用科学格式,可以改为:
scale\u y\u continuous(breaks=c(10^2,10^3),labels=function(x)format(x,scientific=TRUE))
@Solarian我不确定,但这似乎对我的数据不起作用。我有
min(n)=1
max(n)=201
,所以它不允许我那么容易地分解x轴。但是如果是这样的话,并且你的轴甚至没有那么高,那么你为什么要在你的轴上添加10^3和10^4的标签呢?如果仍然希望轴超出数据点,可以使用
ggplot()+xlim(c(110000))
控制轴限制,因为数据是以指数速率收集的。所以我想给这些记号贴上标签。
x_axis_label <- c(expression(paste("10"^"2")),
                  expression(paste("10"^"3")),
                  expression(paste("10"^"4")))
expression(paste("10"^"2"), paste("10"^"3"), paste("10"^"4"))
x_axis_label <- list()
for (i in seq_len(4)) {
  x_axis_label[[i]] <- paste("10^",as.character(i))
}

library(ggplot2)
ggplot() +
  annotate("text", x=1, y=1, label=x_axis_label[1], parse=T)