【问题标题】:Iterative loop operation with IF statement in RR中使用IF语句的迭代循环操作
【发布时间】:2019-05-05 00:07:05
【问题描述】:

我有一个三行五列的 data.frame。我想使用 IF 语句对我的结果进行迭代升级,直到达到我的条件。更具体地说,我想在我的数据框中执行累积列缩减。条件是最终数据帧将包含列总和小于或等于 9(V1、V2 和 V3)的值。

我一直在编写代码,但是我很难应用累积迭代参数。到目前为止,我的代码是:

dataset<-data.frame(V1=c(2,3,4),V2=c(1,2,3),V3=c(0,1,1),V4=c(5,5,3),V5=c(7,8,9))

my.func<-function(x){
df<-data.frame(Class=colnames(x), Val = colSums(x), row.names = 1:length(x))
 if(any(df$Val>9)){
  z<-as.character(df[which.max(df$Val),1])
  w<-x[,-which(colnames(x)==z)]
  dados<-data.frame(Class=colnames(w), Val = colSums(w), row.names = 1:length(w))
if(any(dados$Val<=9)){
  h<-dados
  }
return(h)
 }
}

此代码部分有效。我对这一行的问题是代码没有升级基于最后一个数据框修改的操作。有人可以帮助了解代码失败的地方吗?

【问题讨论】:

    标签: r for-loop if-statement while-loop


    【解决方案1】:

    不确定我是否理解正确,但据我所知,你只是想要

    dataset[names(dataset)[colSums(dataset) <= 9]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-15
      • 2023-03-26
      • 2016-03-05
      • 2021-03-06
      • 1970-01-01
      • 2017-06-02
      • 2021-03-19
      • 1970-01-01
      相关资源
      最近更新 更多