我有一个很大的数组,在不同的列中有值。我还有一个名称向量(“prover”),我想遍历它,扫描数组中的一行(“Analys”)寻找匹配的值。然后我想选择高于或低于某个值的值,并将1或0附加到一组新的向量中,以我的“name vector”中的名称命名。
我已经尝试了下面的变体,使用paste或paste0,但得到不同的错误代码。我在这里发现了类似的问题,但还没有设法得到任何我试图工作的东西。我也尝试了lapply(没有for循环),但得到以下错误:“the condition has length > 1 and only the first element will be used”。
for (i in 1:length(prover)){
if (larm_age$Analys == prover[i]){
if (larm_age$Ålder >= 18){
if (larm_age$Res <= ngräns_v || larm_age$Res >= ögräns_v){
paste(prover[i], sep="") <- 1
}else{
paste(prover[i], sep="") <- 0
}
}else if (larm_age$Ålder <= 18 && larm_age$Ålder >= 0.1){
if (larm_age$Res <= ngräns_b || larm_age$Res >= ögräns_b){
paste(prover[i], sep="") <- 1
}else{
paste(prover[i], sep="") <- 0
}
}else if (larm_age$Ålder <= 0.1){
if (larm_age$Res <= ngräns_s || larm_age$Res >= ögräns_s){
paste(prover[i], sep="") <- 1
}else{
paste0(prover[i], sep="") <- 0
}
}
}
}
字符串
我做错了什么?我知道可能有一个函数,在某个地方,做这个,比我想做的要简单得多。
1条答案
按热度按时间nhaq1z211#
所以,我从你的问题中理解到:
你有一个列
analys
和一个列alder
。让analys
的值为a
,b
和c
。我为您创建了一些简化的示例数据,基于我假设您正在尝试实现的目标。
我想你是想对
alder
变量进行分类。然后你想分析哪些年龄组在analys
中有什么样的匹配。我省略了res
变量,因为它只是增加了另一个测试层。计算很便宜,所以不需要只计算
analys
中匹配的类别。将category
设为变量。然后用prover
测试analys
中的匹配。如果prover
非常大,我的测试方法可能不是理想的解决方案。我认为你想做这个作为准备工作,然后做另一个分析,再次得出
prover
匹配的不同组合的结论(在这种情况下,由0
和1
在test_.列中表示)和categories
。你也可以使用case_when()
。如果你和我们分享一个最小的reprex,加上想要的输出,这将更容易解决你的问题:)
与此同时,我正在寻找一种解决方案来自动化
prover
测试,而无需for
循环。字符串
结果如下:
型