R 基于一系列真/假条件动态创建二进制值列

R 基于一系列真/假条件动态创建二进制值列,r,loops,if-statement,R,Loops,If Statement,我希望能够在dataframe中创建新列,其值将由预定义的条件语句列表确定。这样做的最终目标是得到一个表二进制值,该值表示每个实例是否满足某个条件。这似乎是一个笨拙或古怪的输出,但这是我试图建立的经济模型(重复销售模型)的要求 以下是一个非常简化的可复制示例: df <- data.frame(a=c(1,2,3,4,5),b=c(0.3,0.2,0.5,0.3,0.7)) conditions <- data.frame(y=df$b>=0.5, z=df$b>=

我希望能够在dataframe中创建新列,其值将由预定义的条件语句列表确定。这样做的最终目标是得到一个表二进制值,该值表示每个实例是否满足某个条件。这似乎是一个笨拙或古怪的输出,但这是我试图建立的经济模型(重复销售模型)的要求

以下是一个非常简化的可复制示例:

df <- data.frame(a=c(1,2,3,4,5),b=c(0.3,0.2,0.5,0.3,0.7)) 
conditions <-   data.frame(y=df$b>=0.5, z=df$b>=0.7) 
columns <- c("y","z") 
for(i in length(columns)){ 
   df[, paste("var_",columns[i],sep="")] <- ifelse(conditions[i],1,0) 
} 
df=0.7)
列我们可以这样做

df[paste0("var_", seq_along(columns))] <- +(conditions)
df
#  a   b var_1 var_2
#1 1 0.3     0     0
#2 2 0.2     0     0
#3 3 0.5     1     0
#4 4 0.3     0     0
#5 5 0.7     1     1

df[paste0(“var”,seq_沿着(列))]谢谢!仅供参考,这行的“+(…)”部分叫什么?该函数有名称吗?@Geoprorammer它只是将逻辑数据集强制为二进制。标准方法是
df[paste0(“var”,seq_沿(列))]