【问题标题】:How to fetch the values of dynamically generated variables by for loop in R如何通过R中的for循环获取动态生成的变量的值
【发布时间】:2021-11-11 07:49:11
【问题描述】:
mydata2 <- maydata1
# x == 10
alpha <- 0.63
beta <- 0.2

for (i in 1:x) {
j <- i +1
  for(i in 1:j){
    CurColumn  <- mydata2[row,paste0("Columns",i)]
    NextColumn <- mydata2[row,paste0("Columns",j)] 
    DiffColumn <- NextColumn - CurColumn
    if ( (CurColumn <= alpha & alpha <= NextColumn) | ( DiffColumn < beta)) {
      mydata2$T1 <- CurColumn
      mydata2$T2 <- NextColumn
      CurActParams  <- mydata2[row,paste0("AP",i)]
      NextActParams <- mydata2[row,paste0("AP",j)] 
      break
    }
  }
} 

附上数据框供参考,我需要帮助根据代码条件计算T1T2

在执行代码时,我无法使用粘贴函数来精确列名,它以字符串形式返回。

例如: "Columns0" 返回,mydata$"Columns0" 我期望列应该像 mydata$Columns0,以便可以将值分配给新变量。

【问题讨论】:

  • 使用[[...]] 代替$

标签: r dataframe for-loop


【解决方案1】:

这对我有用,希望对某人有所帮助。

#x == 10
alpha <- 0.63
beta <- 0.2

for (row in 1:nrow(mydata)) {
        for (i in 0:22) {
          j <- i + 1
          CurColumn  <-
            mydata[row, paste0("Column", i)]
          NextColumn <-
            mydata[row, paste0("Column", j)]
          CurAP  <-
            mydata[row, paste0("AP", i)]
          NextAP <-
            mydata[row, paste0("AP", j)]
          
          Diff <- NextColumn - CurColumn
          
          if (((CurColumn <= myda$alpha) |
               (is.na(CurColumn)))
              &
              ((myda$alpha <= NextColumn) |
               (is.na(NextColumn)))
              |
              (DiffColumn < beta)) {
            mydata$T1 <- CurColumn
            mydata$T2 <- NextColumn
            mydata$V1 <- CurAP
            mydata$V2 <- NextAP
            break
            }
        }
    } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多