Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:查找满足条件的行_R_Conditional Statements - Fatal编程技术网

R:查找满足条件的行

R:查找满足条件的行,r,conditional-statements,R,Conditional Statements,我已经看到了一些关于这方面的线索,并制定了一个半答案,但我所需要的与我所看到的略有不同。我希望找到符合特定条件的行下面的行。这显然是一个条件本身,但我不知道如何在R中表达它。到目前为止,我的代码是: index = decisionMatrix[,1] == 1 & decisionMatrix[,9] == 1 decisionMatrix[index,7] = .01 将值0.01指定给满足该条件的行的第7列。我还希望将选定行下方的行的第7列设为=0.1 任何帮助都将不胜感

我已经看到了一些关于这方面的线索,并制定了一个半答案,但我所需要的与我所看到的略有不同。我希望找到符合特定条件的行下面的行。这显然是一个条件本身,但我不知道如何在R中表达它。到目前为止,我的代码是:

index = decisionMatrix[,1] == 1 & decisionMatrix[,9] == 1  
decisionMatrix[index,7] = .01  
将值0.01指定给满足该条件的行的第7列。我还希望将选定行下方的行的第7列设为=0.1

任何帮助都将不胜感激
谢谢

迈克

可能和哪个在一起

index <- which(decisionMatrix[,1] == 1 & decisionMatrix[,9] == 1)
## Shift indices by 1
index <- index+1
## Remove an index that would be greater than the number of rows
index <- index[index<=nrow(decisionMatrix)]
decisionMatrix[index,7] <- .01

索引可能与
哪个

index <- which(decisionMatrix[,1] == 1 & decisionMatrix[,9] == 1)
## Shift indices by 1
index <- index+1
## Remove an index that would be greater than the number of rows
index <- index[index<=nrow(decisionMatrix)]
decisionMatrix[index,7] <- .01

indexR中的子集使用逻辑向量。这意味着您可以将逻辑向量移动一个位置。例如:

set.seed(42)
DF <- data.frame(x=1:10, y=rnorm(10))
#     x           y
# 1   1  1.37095845
# 2   2 -0.56469817
# 3   3  0.36312841
# 4   4  0.63286260
# 5   5  0.40426832
# 6   6 -0.10612452
# 7   7  1.51152200
# 8   8 -0.09465904
# 9   9  2.01842371
# 10 10 -0.06271410

ind <- DF$y < 0
#Shift by one position:
ind <- c(FALSE, head(ind,-1))
DF[ind,]
#  x         y
#3 3 0.3631284
#7 7 1.5115220
#9 9 2.0184237
set.seed(42)

R中的DF子集使用逻辑向量。这意味着您可以将逻辑向量移动一个位置。例如:

set.seed(42)
DF <- data.frame(x=1:10, y=rnorm(10))
#     x           y
# 1   1  1.37095845
# 2   2 -0.56469817
# 3   3  0.36312841
# 4   4  0.63286260
# 5   5  0.40426832
# 6   6 -0.10612452
# 7   7  1.51152200
# 8   8 -0.09465904
# 9   9  2.01842371
# 10 10 -0.06271410

ind <- DF$y < 0
#Shift by one position:
ind <- c(FALSE, head(ind,-1))
DF[ind,]
#  x         y
#3 3 0.3631284
#7 7 1.5115220
#9 9 2.0184237
set.seed(42)

DF@SimonO101 Arf,由于稍后的编辑,有一个明显的错误(重复的
index+1
),对不起。我认为这是正确的,除了我认为
index
需要是
索引感谢代码!我稍微修改了它,因为它似乎使两行都包含一个0.01,而不仅仅是第二行。修改(尽管不美观)如下:
index@SimonO101对不起,我看到代码没有分开。我想更改,但我不知道如何更改。@Mike我想你只需要遵循朱巴的答案,而不需要在底部添加我的建议。@SimonO101 Arf,由于稍后的编辑,出现了一个明显的错误(重复的
index+1
),对不起。我认为这是正确的,只是我认为
index
需要是
index,谢谢代码!我稍微修改了它,因为它似乎使两行都包含一个0.01,而不仅仅是第二行。修改(尽管不美观)如下:
index@SimonO101对不起,我看到代码没有分开。“我想改变这一点,但我不知道该怎么做。”迈克,我想你只需要按照朱巴的回答去做,而不必在底部写上我的建议。