r - R在列表中的数据框中的列中提取唯一行值
问题描述
我有一个称为数据框的列表,list
它看起来像这样:
列表[[1]]
X1 X2 X3 X4
a 1 b c
d 2 e f
g 3 h i
j 4 k l
列表[[2]]
X1 X2 X3 X4
a 1 b c
d 2 e f
g 2 h i
j 3 k l
列表[[3]]
X1 X2 X3 X4
a 1 b c
d 2 e f
g 3 h i
j 4 k l
我一直在尝试使用 lapply 循环遍历列表并打印出每个数据框 X2 列中的所有重复项。
我无法弄清楚这一点。将不胜感激任何帮助。谢谢。
我绑了
lapply(list, function(i) {
if(length(unique(i[X2])) != length(i[X2])) {
print(i[X2][duplicated(i[X2]))
} else {
print("No duplicates")
}
})
解决方案
我们可以使用lapply
,找出列中的duplicated
索引X2
并打印unique
重复的值。
lapply(list_df, function(x) {
inds <- duplicated(x$X2)
if(any(inds)) unique(x$X2[inds]) else "No duplicates"
})
#[[1]]
#[1] "No duplicates"
#[[2]]
#[1] 2
#[[3]]
#[1] "No duplicates"
使用list_df
而不是list
因为list
是内部 R 函数。
推荐阅读
- iframe - 设置 iframe 的内容安全策略?
- python - Python中1到N之间所有素数的总和
- javascript - 在以下示例中,是“
- " 一个错字还是有特殊含义?
- javascript - 反应组件,MongoDB 并传递一个键 - 类型错误:无法读取未定义的属性“_id”
- android - 有没有办法确保在用户将应用程序置于睡眠状态或在 Android 和 iOS 上的 Xamarin Forms 中终止应用程序之前完成某些任务?
- ruby-on-rails - 保存来自 Stripe Webhook Rails 的数据时出现问题
- regex - sed 替换 xml 标头
- javascript - 为什么“message.channel.find”不是函数?
- android - 没有 MainActivity 的 Kotlin 对话框/警报,没有自定义布局
- android - GC后android中的奇怪WeakReference仍然活着?