【问题标题】:Using of variable in the loop for R在 R 的循环中使用变量
【发布时间】:2012-07-19 01:11:41
【问题描述】:

我的数据的列名是 LABELXYZ123_river、LABELXYZ123_lake、LABELXYZ345_river、LABELXYZ345_lake 等......我有一个实际变量的列表 LABELXYZ123、LABELXYZ345 等...我想在单独的图形上为每个标签绘制河流和湖泊数据。我带着那个代码来了,那行不通。我认为变量及其名称的问题。你能建议我解决方案吗?谢谢...

data <- read.table("data.txt",header=T,row.names=1)
lst  <- c("LABELXYZ123","LABELXYZ345")
for(i in lst) {
lbl_river <- paste("data","$",LABELXYZ123,"_river",sep="")
lbl_lake <- paste("data","$",LABELXYZ123,"_lake",sep="")
allt <- c(lbl_lake,lbl_river)
png(filename=i".png")
plot(paste(lbl_river,xaxt='n',xlab="",ylab="i",type="b",col="darkgreen",lwd=3,ylim=c(min(allt),max(allt)))
lines(paste(lbl_lake,type="b",col="darkred",lwd=3)
dev.off()
}

lbl_river 其实是data$LABELXYZ123_river

【问题讨论】:

  • 你想用 plot 函数绘制什么(你的 x 轴是什么?你的 y 轴是什么?)。
  • 您让自己难以使用paste 构造R 表达式(然后您必须call 才能使您的代码正常工作

标签: r variables loops


【解决方案1】:

努力挽回一些东西....等剧情整理好以后会有更多的事情发生

data <- read.table("data.txt",header=T,row.names=1)
lst  <- c("LABELXYZ123","LABELXYZ345")
for(label_name in lst) {
  lbl_river <- data[[paste(label_name, "river", sep = "_"]]
  lbl_lake  <- data[[paste(label_name, "lake", sep = "_"]]

}

【讨论】:

  • 如果您在问题中使用的代码是您正在使用的代码,您的绘图代码将无法正常工作!
  • 我使用您的查询对数据进行子集化的想法重写了它 - 这非常有效。往下看
【解决方案2】:

使用 mnel 建议...

data <- read.table("data.txt",header=T,row.names=1)
lst  <- c("LABELXYZ123","LABELXZZ123","LABELXYZ345","LABELXYZ567","LABELXYY1234","LABELXXX123")
labs <- row.names(data)
for(i in lst) {
    png(filename=paste(i,".png",sep=""),width = 700, height = 350)
    river  <- data[[paste(i, "_river", sep = "")]]
    lake <- data[[paste(i, "_lake", sep = "")]]
    allt <- c(river,lake)
    plot(river, xaxt='n',xlab="",ylab=i,type="b",col="darkred",lwd=3,ylim=c(min(allt)*1.05,max(allt)*0.95))
    lines(lake,type="b",col="darkgreen",lwd=3)
    axis(1,at=1:16,labels=labs,las=2)
    dev.off()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-02
    • 2020-01-08
    • 2015-08-10
    • 2020-03-15
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    相关资源
    最近更新 更多