r - 如何获取数据框中未找到的值的 NA
问题描述
我有一个值向量和一个数据框,我可以使用以下命令在数据框的特定列中找到向量的每个项目:
lapply(l, function(x) df[which(df$col1==x),col2])
对于我的数据框中不可用的值,如何获得 NA?
例如:
df: col1 col2
1 a
1 b
2 c
l=c(1,3)
output: col1 col2
1 a,b
3 NA
解决方案
l
使用 data.table 您可以通过对(您的向量)运行二进制连接来有效地实现这一点
library(data.table)
setDT(df)[.(l), # join between `df` & `l`
on = .(col1), # using `col1`
.(col2 = toString(col2)), # paste the values in `col2` (you can add `unique`)
by = .EACHI] # do this per each value in `l`
# col1 col2
# 1: 1 a, b
# 2: 3 NA
推荐阅读
- php - preg_match 上的 Css 类单词匹配
- python - 将 django 托管到 Heroku 并获取应用程序错误代码 10
- image - 为什么将图像转换为 HEIC 会删除整行或整列像素?
- python - 在交替字母练习中使用 **kwargs
- html - 是否有可以嵌套在其他元素中的 HTML5 元素列表?
- c++ - 如何使用列表作为值的无序映射
- node.js - 丢弃 NodeJS 转换流中的块并读取下一个
- python - 在 Python 中创建 excel 图表时获取不同的折线图类型
- javascript - 当我执行执行注册或登录的 ajax 请求时,它无法正常工作
- javascript - 用户成功登录后如何通过路由器立即将用户重定向到新页面(密码,用户名正确)