if 和 else 条件在 R 中都被忽略
both if and else condition get ignored in R
首先我尝试在 R 中做一个简单的 if else 语句但是 if 条件总是被忽略然后我做了两个 if 语句但没有改变,问题是当 is.na(datamean[[d]][k,j] == TRUE
我的代码进入两个 if 语句如图所示,如果 is.na(datamean[[d]][k,j] == FALSE
它只是增加 j。
所以我尝试编写一些打印函数来确定问题,但我做不到,这些是我使用的代码和控制台中的输出
d 表示数据框,k 表示行,j 表示列
for (d in seq_along(id))
{
for (k in seq_len(nrow(datamean[[d]])))
{
p <- 0
for(j in 1:4)
{
print(k)
print(j)
print(datamean[[d]][k,j])
print(is.na(datamean[[d]][k,j]))
print(p)
if( is.na(datamean[[d]][k,j] == FALSE))
{
p <- p+1
print('hello')
if(p==4)
{
nbs<-nbs+1
}
}
if(is.na(datamean[[d]][k,j] == TRUE))
{
print('hello break')
break
}
}
}
}
你应该检查并尝试这个:
for (d in seq_along(id))
{
for (k in seq_len(nrow(datamean[[d]])))
{
p <- 0
for(j in 1:4)
{
print(k)
print(j)
print(datamean[[d]][k,j])
print(is.na(datamean[[d]][k,j]))
print(p)
if( is.na(datamean[[d]][k,j]) == FALSE)
{
p <- p+1
print('hello')
if(p==4)
{
nbs<-nbs+1
}
}
if(is.na(datamean[[d]][k,j]) == TRUE)
{
print('hello break')
break
}
}
}
}
首先我尝试在 R 中做一个简单的 if else 语句但是 if 条件总是被忽略然后我做了两个 if 语句但没有改变,问题是当 is.na(datamean[[d]][k,j] == TRUE
我的代码进入两个 if 语句如图所示,如果 is.na(datamean[[d]][k,j] == FALSE
它只是增加 j。
所以我尝试编写一些打印函数来确定问题,但我做不到,这些是我使用的代码和控制台中的输出
d 表示数据框,k 表示行,j 表示列
for (d in seq_along(id))
{
for (k in seq_len(nrow(datamean[[d]])))
{
p <- 0
for(j in 1:4)
{
print(k)
print(j)
print(datamean[[d]][k,j])
print(is.na(datamean[[d]][k,j]))
print(p)
if( is.na(datamean[[d]][k,j] == FALSE))
{
p <- p+1
print('hello')
if(p==4)
{
nbs<-nbs+1
}
}
if(is.na(datamean[[d]][k,j] == TRUE))
{
print('hello break')
break
}
}
}
}
你应该检查并尝试这个:
for (d in seq_along(id))
{
for (k in seq_len(nrow(datamean[[d]])))
{
p <- 0
for(j in 1:4)
{
print(k)
print(j)
print(datamean[[d]][k,j])
print(is.na(datamean[[d]][k,j]))
print(p)
if( is.na(datamean[[d]][k,j]) == FALSE)
{
p <- p+1
print('hello')
if(p==4)
{
nbs<-nbs+1
}
}
if(is.na(datamean[[d]][k,j]) == TRUE)
{
print('hello break')
break
}
}
}
}