使用具有非连续字符串值的多个条件来生成新的向量

时间:2017-09-28 15:01:04

标签: r

说,我有一个值为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"

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

你有理由想让v3成为一个因素吗? v3是具有单个级别的因子,因为默认R设置是将字符串列视为因子,并且您最初将每一行设置为字符串&#34; 0&#34;。

我建议您使用条件分配v3:


CDT 9/28/2017 
 * Result: 18169  

CDT 18169     
 * Result: 09/28/2017