gpt4 book ai didi

r - ifelse 中的条件

转载 作者:行者123 更新时间:2023-12-02 05:43:45 24 4
gpt4 key购买 nike

我有以下类型的数据

ex1 <- data.frame (A = 1:6, B = c(1,2,3,5,1,1), qit = c(1,2,1,2,5,1))
ex1
A B qit
1 1 1 1
2 2 2 2
3 3 3 1
4 4 5 2
5 5 1 5
6 6 1 1

我尝试了以下 ifelse 循环,但没有得到我需要的......

 ifelse (ex1[1] == ex1[2] & ex1$qit, 1,
ifelse ( ex1[1]== ex1$qit || ex1[2]== ex1$qit, 0.5,
NA))

条件是:

(1) If A = B = qit , then output 1 (else) 

(2) Either A = qit or B = qit then output = 0.5 (else)

(3) If none of above conditions hold output NA

我想我对 & 的使用有问题,但我试过 ex1[1] == ex1[2] == ex1$qit 给出了一个错误。

预期输出:

ex1$out <- c(1, 1, NA, NA, 0.5, 0.5) 
A B qit out
1 1 1 1 1.0
2 2 2 2 1.0
3 3 3 1 NA
4 4 5 2 NA
5 5 1 5 0.5
6 6 1 1 0.5

解法说明:

Soultion for the first row:
A = B = qit all conditions hold true so the output 1

For second row
A = B = qit all conditions hold true so the output 1

For third row
A = B but not equal to qit output NA

For fourth row
A is not equal to B nor equal to qit output NA

Fifth row
A = qit (however A = B = qit doesnot hold true) so output 0.5

Sixth row
B = qit (however A = B = qit doesnot hold true) so output 0.5

最佳答案

ifelse (ex1[1] == ex1[2] & ex1[1] == ex1$qit, 1,
ifelse ( ex1[1] == ex1$qit | ex1[2] == ex1$qit, 0.5,
NA))

关于r - ifelse 中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com