r - 计算两个组合列的唯一值
问题描述
我有一个 data.table 如下
library(data.table)
library(haven)
df1 <- fread(
"A B C iso year
0 B 1 NLD 2009
1 A 2 NLD 2009
0 Y 3 AUS 2011
1 Q 4 AUS 2011
0 NA 7 NLD 2008
1 0 1 NLD 2008
0 1 3 AUS 2012",
header = TRUE
)
我想计算iso
, 和year
( 这将是NLD 2009
, AUS 2011
, NLD 2008
and AUS 2012
, 所以 4 的组合的唯一值。
我试过df1[,uniqueN(.(iso, year))]
了df1[,uniqueN(c("iso", "year"))]
第一个给出错误,第二个给出答案 2,我正在寻找 4 个独特的组合。
我在这里做错了什么?
(因为我正在使用大型字符串数据集执行此操作,所以我不希望合并列,然后进行测试)。
解决方案
data.table
您可以使用包如下解决它。
df1[, uniqueN(.SD), .SDcols=c("iso", "year")]
或者
uniqueN(df1, by=c("iso", "year"))
推荐阅读
- express - GET favicon 请求不起作用且未记录
- ios - IOS safari 和 Chrome 阻止了我的 websocket django 频道
- python - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是使用 Python 3.7 时的“NoneType”
- java - 与不同实体的单向@OneToOne 关系
- php - 移动 chrome 浏览器是否缓存共享 url?
- c - readdir_r 弃用的性能影响?
- windows - 如何修复 - 网络使用“发生系统错误 67”。
- c# - Enumerable.Any() 和可能的多个枚举
- javascript - 如何将值解析为 id onclick 函数
- angular - 角形单元测试