高维矩阵中按列的公共元素
Common elements by columns in high-dimensional matrix
我有一个类似 original 的数据,其中包含更多列。
id <- c('A','B','C', 'D', 'E', 'F', 'G')
month <- c('NA', 'D', 'H', 'I', 'A', 'B', 'NA')
iso <- c('NA', 'NA', 'NA', 'A', 'B', 'C', 'NA')
original <- data.frame(id, month, iso)
我想创建一个包含列中所有常见元素的字符串,例如字符串 common:
common <- c("A", "B")
我发现了如下帖子:
R: How can I find the intersection of elements from two rows of a dataframe?
或者喜欢:
How to find common elements from multiple vectors?
但这些帖子并不能解决问题。在如此高维的数据集中,我需要一些“更少手动”的东西。
有线索吗?
谢谢
一个选项可以是:
Reduce(`intersect`, original)
[1] "A" "B"
试试下面的代码
library(RVenn)
overlap(Venn(original))
# [1] "A" "B"
- 将数据转换成列表(实际上数据集本来就是一个列表)
- 然后:
unli_df <- unlist(df)
unique(unli_df)
使用purrr
library(purrr)
reduce(original, intersect)
#[1] "A" "B"
我有一个类似 original 的数据,其中包含更多列。
id <- c('A','B','C', 'D', 'E', 'F', 'G')
month <- c('NA', 'D', 'H', 'I', 'A', 'B', 'NA')
iso <- c('NA', 'NA', 'NA', 'A', 'B', 'C', 'NA')
original <- data.frame(id, month, iso)
我想创建一个包含列中所有常见元素的字符串,例如字符串 common:
common <- c("A", "B")
我发现了如下帖子: R: How can I find the intersection of elements from two rows of a dataframe? 或者喜欢: How to find common elements from multiple vectors?
但这些帖子并不能解决问题。在如此高维的数据集中,我需要一些“更少手动”的东西。
有线索吗?
谢谢
一个选项可以是:
Reduce(`intersect`, original)
[1] "A" "B"
试试下面的代码
library(RVenn)
overlap(Venn(original))
# [1] "A" "B"
- 将数据转换成列表(实际上数据集本来就是一个列表)
- 然后:
unli_df <- unlist(df)
unique(unli_df)
使用purrr
library(purrr)
reduce(original, intersect)
#[1] "A" "B"