if 语句参数长度 0
if statement argument length 0
希望是一个简单的问题:
我得到 if 语句行的 "argument is of length zero":
for (i in 1:(length(MixedDF))) {
if (MixedDF[i,1] - MixedDF[i-1,1] == 1) {
SwitchInd[i] = MixedDF$trial[i]
}
}
其中 MixedDF 是一个大矩阵,而 SwitchInd 是一个零矩阵,应该用 if 语句中标识的索引填充。 MixedDF$trial
或 MixedDF[i,1]
是矩阵中的第一列。此列包含从 51 开始到 74 的整数,其中有许多行具有相同的值。例如 MixedDF$trial <- c(51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53.....)
。我想确定试验变化的指数,所以 51 到 52、52 到 53 等等。更一般地说,我想了解为什么 if 语句不起作用,这看起来很简单。
确保您没有 NULL 值。此外,您没有定义 if 语句失败的情况。添加 'else' 条件。
if (MixedDF[i,1] - MixedDF[i-1,1] == 1)
{
SwitchInd[i] = MixedDF$trial[i]
}
else
{
SwitchInd[i] = SOME VALUE
}
另一个问题是你不能从1开始(当i为1时,i-1为0)。
这给出了值变化的索引
x <- c(51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53)
which(diff(x)!= 0) + 1
#[1] 6 15
希望是一个简单的问题:
我得到 if 语句行的 "argument is of length zero":
for (i in 1:(length(MixedDF))) {
if (MixedDF[i,1] - MixedDF[i-1,1] == 1) {
SwitchInd[i] = MixedDF$trial[i]
}
}
其中 MixedDF 是一个大矩阵,而 SwitchInd 是一个零矩阵,应该用 if 语句中标识的索引填充。 MixedDF$trial
或 MixedDF[i,1]
是矩阵中的第一列。此列包含从 51 开始到 74 的整数,其中有许多行具有相同的值。例如 MixedDF$trial <- c(51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53.....)
。我想确定试验变化的指数,所以 51 到 52、52 到 53 等等。更一般地说,我想了解为什么 if 语句不起作用,这看起来很简单。
确保您没有 NULL 值。此外,您没有定义 if 语句失败的情况。添加 'else' 条件。
if (MixedDF[i,1] - MixedDF[i-1,1] == 1)
{
SwitchInd[i] = MixedDF$trial[i]
}
else
{
SwitchInd[i] = SOME VALUE
}
另一个问题是你不能从1开始(当i为1时,i-1为0)。
这给出了值变化的索引
x <- c(51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53)
which(diff(x)!= 0) + 1
#[1] 6 15