代码

list(c(1,2), c('a', 'b'), c('a', 'b'), c(2,3)) -> li
## 
## [[1]]
## [1] 1 2
## 
## [[2]]
## [1] "a" "b"
## 
## [[3]]
## [1] "a" "b"
## 
## [[4]]
## [1] 2 3

问:表()中的所需输出.

Factor     c(1,2) c('a', 'b') c(2,3)
Freq           1        2        1 

这看起来很简单,但我找不到解决办法.

Edit-不幸的是,我的列表包含ca 500,000个元素.对不起,我没有提到这一点.解决方案可能是将列表中的项合并到单个元素中:

## 
## [[1]]
## [1] "1 2"
## 
## [[2]]
## [1] "a b"
## 
## [[3]]
## [1] "a b"
## 
## [[4]]
## [1] "2 3"

然后取消列出列表并应用表.

问:如何将列表元素连接到单个项目中?

A:sapply(li, paste, collapse = "-") |> table() A

推荐答案

uniquematch使用列表,因此您可以将列表match添加到unique个成员中.在结果上调用table,然后剩下的就是再次使用unique设置结果的名称.这一切都可以用一行代码来完成:

setNames(table(match(li, unique(li))), unique(li))
#>    c(1, 2) c("a", "b")     c(2, 3) 
#>          1           2           1 

或者,如果您更喜欢清晰而不是简洁,基本的R管道等效项将是:

li |>
  match(unique(li))    |>
  table()              |>
  setNames(unique(li))
#>    c(1, 2) c("a", "b")     c(2, 3) 
#>          1           2           1 

R相关问答推荐

使用Shiny组合和显示复制和粘贴的数据

寻找图片边缘

如何从R中的字符串元素中减go 一个数字?

单个轮廓重叠条的单独图例

如何使下一个按钮只出现在Rshiny 的一段时间后?""

使用sf或terra的LINESTRAING的累积长度

将包含卷的底部25%的组拆分为2行

为什么当用osmdata映射R时会得到相邻状态?

如何根据嵌套元素的名称高效而优雅地确定它属于哪个列表?

对于变量的每个值,仅 Select 包含列表中所有值的值.R

R中时间间隔的大向量与参考时间间隔的相交

变长向量的矢量化和

在散点图中使用geom_point放置线图例

使用函数从R中的列中删除标高

R try Catch in the loop-跳过缺少的值并创建一个DF,显示跳过的内容

R:使用ApexCharge更改标签在饼图中的位置

如何将字符类对象中的数据转换为R中的字符串

如何在不使用SHINY的情况下将下拉滤镜列表添加到ggploy?

如何在R中的两列以上使用联合(&U)?

如何将两个用不同的运算符替换*的矩阵相乘