说,我有一个值为1:50的数字向量(v1)和值为1:4的另一个(v2)。 我想创建一个第三个向量(v3),它产生" 1"或" 0"基于来自前述载体(v1,v2)的值的2个条件。
我的方法是首先创建一个新的向量" 0"价值,然后实施条件作为指数,计算" 1"满足条件的地方。
这是我到目前为止所拥有的:
df$v3 <- "0" # first add new vector with values zero
score <- (df$v1 %in% c(2,4:7,9,12:13,16,18:23,26,33,35,39,41:43,45:46) &
df$v2 %in% c(1,2)) | # first condition of the rule
(df$v1 %in% c(1,3,8,10:11,14:15,17,24:25,27:32,34,36:38,40,44,47:50) & df$v2
%in% c(3,4)) # second condition of the rule
df$v3[score] <- "1" # coerce rule to add "1" value to v3
df$v3 <- factor(df$v3) # finish by converting to factor
以上代码生成
Warning message:
In `[<-.factor`(`*tmp*`, AQ_mark, value = c(1L, 1L, 1L, 1L, 1L, :
invalid factor level, NA generated"
任何帮助都非常感激。
答案 0 :(得分:0)
你有理由想让v3成为一个因素吗? v3是具有单个级别的因子,因为默认R设置是将字符串列视为因子,并且您最初将每一行设置为字符串&#34; 0&#34;。
我建议您使用条件分配v3:
CDT 9/28/2017
* Result: 18169
CDT 18169
* Result: 09/28/2017