我需要创建一个向量(让我们称之为#34;支持向量"),它匹配其他向量("主向量")中的位置和所需的值。我的猜测是,最简单的方法是使用for
和ifelse
。我熟悉使用for
向矢量追加新值,但它不适用于ifelse
。这是一个简单的例子,显示了我的想法(请阅读#description):
#the "main vector" with fixed values
main_vector=c("ABC","ABC","ABC","XYZ")
#empty "support vector" which I want fill
support_vector=c()
#loop that puts into "support vector" 1 if "ABC" and 0 if "XYZ"
for(i in 1:length(main_vector)){ifelse(main_vector[i]=="ABC",support_vector[i]=1,support_vector[i]=0}
它会生成错误,表明我的代码中存在=
问题(或者我错了?)。我应该使用哪些方法/功能绕过=
?
提前谢谢
答案 0 :(得分:0)
最简单的方法可能是:
int[] A = {1, 1, 5, 3};
int[] B = {7, 5, 2, 3};
boolean result = isGreater(A,B);
/*
result is true because:
A[0] < B[2],
A[1] < B[3],
A[2] < B[0],
A[3] < B[1].
Every integer in A found its greater integer in B. Note that multiple mappings can exist,
finding one is enough to return true.
*/
出于某种原因,如果support_vector <- as.numeric(main_vector == "ABC")
> support_vector
#[1] 1 1 1 0
仍然想要使用OP
,则不需要for-loop
而是ifelse
可以更方便/可读的长度参数选项{ {1}}。
if-else
注意:@gdkrmr提供的解决方案非常优雅。
答案 1 :(得分:0)
这是另一种方法(不像@gdkm或@MKR那样好但在某些方面可能有用):
RewriteRule ^schedule/?$ http://www.example.com/qB/?sch=$1 [NC,L]