在数据框中逐行搜索和查找值

拉米·法汉

我的数据框如下所示:

x1 <- c("a", "c", "f", "j")
x2 <- c("b", "c", "g", "k")
x3 <- c("b", "d", "h", NA)
x4 <- c("a", "e", "i", NA)
df <- data.frame(x1, x2, x3, x4, stringsAsFactors=F)

df

x1 x2   x3   x4
1  a  b    b    a
2  c  c    d    e
3  f  g    h    i
4  j  k <NA> <NA>

现在我有一个任意向量:

vec <- c("a", "i", "s", "t", "z")

我想将向量值与数据帧中的每一行进行比较,并创建一个附加列,该列指示是否找到了至少一个向量值。

结果数据框应如下所示:

  x1 x2   x3   x4 valueFound
1  a  b    b    a          1
2  c  c    d    e          0
3  f  g    h    i          1
4  j  k <NA> <NA>          0

我想做到不循环。非常感谢您的支持!

拉米

努尔塞尔

这是执行此操作的一种方法:

df$valueFound <- apply(df,1,function(x){
  if(any(x %in% vec)){ 
    1 
  } else {
    0
  }
})
##
> df
  x1 x2   x3   x4 valueFound
1  a  b    b    a          1
2  c  c    d    e          0
3  f  g    h    i          1
4  j  k <NA> <NA>          0

感谢@David Arenburg和@CathG,提供了两种更简洁的方法:

  • apply(df, 1, function(x) any(x %in% vec) + 0)
  • apply(df, 1, function(x) as.numeric(any(x %in% vec)))

只是为了好玩,还有一些其他有趣的变体:

  • apply(df, 1, function(x) any(x %in% vec) %/% TRUE)
  • apply(df, 1, function(x) cumprod(any(x %in% vec)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在数据框中查找相交项

来自分类Dev

在数据框中搜索最近的日期

来自分类Dev

如何在数据表的搜索框中输入值

来自分类Dev

在数据框之间搜索和查找

来自分类Dev

在数据框中逐行分配值

来自分类Dev

在数据框中查找连续值

来自分类Dev

R:在数据框中查找列列表的最大值/最小值

来自分类Dev

在数据框中搜索值并导出到新列

来自分类Dev

在数据框中查找重复的清单

来自分类Dev

在数据框中查找具有相关列名和索引的最大值

来自分类Dev

搜索和查找从另一个数据框中的一个数据框中搜索值,并根据熊猫中的查找值填充新列

来自分类Dev

在数据框的列中查找匹配值

来自分类Dev

在数据框中搜索数据

来自分类Dev

在数据框中查找字符串并将新值存储在新列中

来自分类Dev

在数据框或其他数据结构中查找和寻址的最快方法

来自分类Dev

在数据框中查找值,并在pandas的新列中添加优先列值

来自分类Dev

在数据框中的JSON记录中查找空值

来自分类Dev

在数据框中查找和替换自定义值

来自分类Dev

在数据框中逐行删除行号

来自分类Dev

在R中的数据框中查找,替换和丢弃值

来自分类Dev

在数据框中逐行计算比率

来自分类Dev

在数据框中查找连续值

来自分类Dev

在数据框中打印列名称和值

来自分类Dev

在数据框列中查找 CSV 值的频率

来自分类Dev

在数据框 2 中搜索数据框 1 的值并计算出现次数

来自分类Dev

在数据框中搜索值,然后将字典中的相应值放入新列中

来自分类Dev

如何搜索值是否在数据框中

来自分类Dev

在数据框中查找和替换字符串

来自分类Dev

在数据框中查找累积特征?

Related 相关文章

热门标签

归档