【发布时间】: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