我想基于另一个变量的值向变量添加常量。换句话说,我有两个变量(Cancer,psa)。癌症1,0(如果患者患有癌症,则为“否”)我想将2.0添加到连续的另一个变量“psa”中。如果病人没有癌症,我想跳过他们的psa变量值并转到下一个病例。我认为这是一个,如果还是ifelse,但我不知道简单的R if或ifelse?
我最好的猜测至今: ifelse(cancer=1,(psa1=psa1+2),(psa1=psa1*1))
我想基于另一个变量的值向变量添加常量。换句话说,我有两个变量(Cancer,psa)。癌症1,0(如果患者患有癌症,则为“否”)我想将2.0添加到连续的另一个变量“psa”中。如果病人没有癌症,我想跳过他们的psa变量值并转到下一个病例。我认为这是一个,如果还是ifelse,但我不知道简单的R if或ifelse?
我最好的猜测至今: ifelse(cancer=1,(psa1=psa1+2),(psa1=psa1*1))
没有看到你的数据了一点很难说你想要什么,但在这里是用一个简单的例子an ifelse
:
R> sample_Data <- data.frame(cancer = sample(0:1, replace = T, 10), psa = sample(1:10))
R> sample_Data$psa1 <- ifelse(sample_Data$cancer == 1, sample_Data$psa + 2, sample_Data$psa * 1)
R> sample_Data
cancer psa psa1
1 0 5 5
2 0 8 8
3 1 2 4
4 0 10 10
5 1 1 3
6 1 3 5
7 0 9 9
8 1 6 8
9 1 7 9
10 0 4 4
hi!欢迎来到stackoverflow,请看看如何使一个伟大的重现性的例子,以获得一些想法如何改善您的帖子:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible例如。它也有点不清楚你得到了什么错误,以及你试图纠正错误。你的陈述有一些语法错误:首先你要检查与癌症的平等,所以它应该是“癌症== 1”。第二,如果你的赋值运算符'='在错误的地方。这个(如果你使用dplyr的话)将工作mutate(psa1 = ifelse(cancer == 1,psa1 + 2,psa1)' – bjoseph
一个简单的'psa < - psa + 2 * cancer'应该这样做 – dww