如何在R中以字符串为条件创建变量

问题描述 投票:1回答:1

我正在尝试根据R中的字符串(act_users)的df条件值创建变量'active'。如果df中变量scr_name和rt_name的名称在字符串中,则我希望变量取值为1,如果不是0。

df <- data.frame("screen_name" = c("august", "berit", "christopher", "david", "erica", "frank"), "rt_name" = c("berit", "august", "david", "erica", "frank", "christopher"))

act_users <- c("david", "august", "berit")

我尝试了以下if else语句,但都不起作用

'%!in%' <- function(x,y)!('%in%'(x,y))#create a function 

df$active <- ifelse((df$screen_name %in% act_users) & (df$rt_name %in% act_users), 1, 
                         ifelse((df$screen_name %!in% act_users) & (df$rt_name %!in% act_users), 2))

#attempts only with screenname
df$active <- ifelse(df$screen_name %in% act_users, "1", ifelse(df$screen_name %!in% act_users, "0"))


df$active <- if(df$screen_name %in% act_users){
  df$active == 1
} else {
  df$active == 0}

我的最后一个解决方案是将活动用户字符串设置为df,合并结果并匹配数据帧内的列,但是我的数据很大,因此使用更有效的解决方案会很好吗?

非常感谢!

r dataframe if-statement text conditional-statements
1个回答
0
投票
df$active <- ifelse(df$screen_name %in% act_users, 1, 0)
© www.soinside.com 2019 - 2024. All rights reserved.