r - 如果存在于 =.> 3 个数据框中(共 5 个)中,如何删除常见元素
问题描述
遵循此处的先前问题,并进行进一步的统计分析,我想知道是否可以删除>= 3 个数据帧中存在的常见峰值
a <- data.frame(ID = c("1", "2", "3", "4", "5"), peak = c("peak1", "peak2", "peak3", "peak4", "peak10"))
b <- data.frame(ID = c("1", "2", "3", "4"), peak = c("peak1","peak3", "peak20", "peak21"))
c <- data.frame(ID = c("1", "2", "3"), peak = c("peak1", "peak5", "peak3"))
d <- data.frame(ID = c("1", "2", "3", "4", "5", "6"),peak = c("peak1", "peak3", "peak7", "peak8", "peak11", "peak12"))
e <- data.frame(ID = c("1", "2", "3"), peak = c("peak1", "peak3", "peak9"))
我想删除 >= 3 个数据帧中存在的常见峰值,并具有所需的输出:
a <- data.frame(ID = c("1", "2", "3", "4", "5"), peak = c("peak2", "peak4", "peak10"))
b <- data.frame(ID = c("1", "2", "3", "4"), peak = c("peak20", "peak21"))
c <- data.frame(ID = c("1", "2", "3"), peak = c( "peak5"))
d <- data.frame(ID = c("1", "2", "3", "4", "5", "6"),peak = c( "peak7", "peak8", "peak11", "peak12"))
e <- data.frame(ID = c("1", "2", "3"), peak = c ("peak9"))
解决方案
在基础 R 中,您可以执行以下操作:
my_list <- list(a = a, b = b, c = c, d = d, e = e)
y <-table(do.call(rbind, my_list)) < 3
list2env(lapply(my_list, function(x) subset(x, y[peak])), .GlobalEnv)
现在调用a
或任何数据帧。
将结果保存在列表中是明智的。即lapply(my_list, function(x) subset(x, y[peak]))
而不是将它们投射到环境中
推荐阅读
- flutter - 移动应用程序的汇款API?
- python - 如何根据 Django 视图中查询集的常见元素按值分组?
- java - ActiveMQ 和自定义 JAAS 登录模块 - 授权?
- javascript - CSS 未加载或应用于从服务器加载的页面
- fingerprint - 使用 BiometricPrompt 检查生物特征和密码/密码的正确流程是什么?
- python-3.x - tkinter python 3的输出框异常
- javascript - Javascript - 在每个实例上增加类变量
- excel - VBA代码根据另一张表中的值在Excel中插入值
- python - 无法训练我自己的数据,因为 KeyError: 'height'
- ibm-watson - IBM Watson IoT - 无法使用 ESP8266 从带有参数的主题获取响应