检查通过使用列表中如果长期存在
我有这样一个数据帧:检查通过使用列表中如果长期存在
df <-data.frame(id = c(1,2,3), stock_1 = c("Google","Microsoft","Yahoo"), stock_2 = c("Yahoo","Gg","NA"))
这个我知道下面是在同一个组:
mylist <- c("Google", "Gg")
具有以前列出如何通过所有行运行mylist,并分别使用1或0来检查是否存在。如果在同一行1倍以上一遍需要输出
df <-data.frame(id = c(1,2,3), stock_1 = c("Google","Microsoft","Yahoo"), stock_2 = c("Yahoo","Gg","NA"), mylist = c(1,1,0))
回答:
的1
的值,例如我们可以用apply
功能遍历的df
行:
apply(df, 1, function(x) max(x %in% mylist)) # 1 1 0
我们可以存储此功能的新列结果:
df$mylist <- apply(df, 1, function(x) max(x %in% mylist)) # id stock_1 stock_2 mylist
# 1 1 Google Yahoo 1
# 2 2 Microsoft Gg 1
# 3 3 Yahoo NA 0
回答:
下面是一个使用do.call
粘贴栏,然后使用grepl
检测您mylist
单词的矢量化的方式,即
as.integer(grepl(paste(mylist, collapse = '|'), do.call(paste, df[-1]))) #[1] 1 1 0
以上是 检查通过使用列表中如果长期存在 的全部内容, 来源链接: utcz.com/qa/265876.html