我是R的新手,从stackoverflow那里得到了很多帮助!!
我有超过1000人的数据表示某些条件。每个变量由连续变量或分类变量组成。我必须根据3个条件(Q1,Q2,Q3)的组合给每个人贴上**'class'(class A,B,C)**的标签,但是,每个条件都由变量的值决定。有点复杂。
比如说
我的数据是这样的。
var1 var2 var3 var4 var5
id1 1 10 1 0 1.5
id2 0 20 0 2 2.4
id3 0 15 0 1 3.5
id4 1 30 1 1 2.1
.
.
id1000 1 25 1 0 1.2
有3个条件(Q1,Q2,Q3)是这样的。
Q1 Q2 Q3
var1 1 . 0
var2 15> 15≤ & <25 >25
var3 1 . 0
var4 2 1 0
var5 <2.0 . ≥2.0
类由每个id的以下内容决定
-If two or more Q1 conditions exist -> class A
-'one Q1 and more than one Q2' or 'more than two Q2' -> class B
-else -> class C
例如,id 1变量(V1~V5)条件分别为Q1、Q1、Q1、Q3、Q1。因为id 1中存在两个以上的Q1,所以id 1的class将是A。
我在谷歌上搜索了很多天,但很难找到解决方案。如果条件的数量是两个(Q1,Q2),这将是更容易的任务,但不幸的是有3个条件。我尝试应用ifelse语句,但在我看来,它不适用于这种情况
1条答案
按热度按时间drkbr07n1#
这有点复杂,但您应该能够使用dplyr package中的
case_when()
函数将“规则”应用于每个id,即如果将id 2的var 4更改为1,则使用您的规则,该id将落入B类标准:
创建于2023-05-19带有reprex v2.0.2