r - data.table:用 keyby 对 j 中的分组变量进行子集化
问题描述
说我有这个数据集
test <- data.table(X = rep(1, 3), Y = rep("a", 3))
这给了我们
test
# X Y
#1: 1 a
#2: 1 a
#3: 1 a
我想知道为什么
test[, X[Y == "a"], keyby = .(X)]
给
# X V1
#1: 1 1
#2: 1 NA
#3: 1 NA
预先感谢您的回答!
解决方案
如果你单独X
运行Y=="a"
> test[, X, keyby = .(X)]
X X
1: 1 1
> test[, Y == "a", keyby = .(X)]
X V1
1: 1 TRUE
2: 1 TRUE
3: 1 TRUE
你会看到,第一个给出1
长度为 1 的数值,第二个给出TRUE
长度为 3 的逻辑值。
由于您没有匹配的子集长度,您将获得NA
s 来填写相应的位置,例如,
> 1[rep(TRUE,3)]
[1] 1 NA NA
推荐阅读
- arduino - Thingsboard Arduino 客户端库问题
- swift - 在 Mac 上的 VSCode 中具有多个文件的 Swift 命令行程序
- python - 在 django 中创建站点地图时,获取“ArticleSitemap”对象没有属性“get_urls”错误
- javascript - typescript - 从日期中获取日期名称
- selenium - 我应该如何处理在 UI 自动化框架中连接在一起的多个数据对象
- postgresql - PostgreSQL 错误关系中的 CREATE 语句不存在
- wordpress - 有没有办法向 docker 容器中的 wordpress 站点发出邮递员请求?
- azure-devops - 为自动管道动态设置参数值
- ios - iOS 妙控键盘 API
- lua - Lua脚本循环键按下