r - 取消列出并为每个列表元素和每个值创建编号
问题描述
我有一个这样的列表:
mylist <- list(c("A", "B", "C"), c("D", "E"), "F")
mylist
[[1]]
[1] "A" "B" "C"
[[2]]
[1] "D" "E"
[[3]]
[1] "F"
我希望将列表转换为如下所示的数据框。我知道如何使用unlist
. 但我还想要一列,每个列表元素(“列表”)都有一个数字,每个列表元素(“id”)中的每个值都有一个数字:
描述 | 列表 | ID |
---|---|---|
一种 | 1 | 1 |
乙 | 1 | 2 |
C | 1 | 3 |
D | 2 | 1 |
乙 | 2 | 2 |
F | 3 | 1 |
解决方案
这是使用stack
+的基本 R 选项ave
type.convert(
transform(
setNames(
stack(setNames(mylist, seq_along(mylist))),
c("Desc", "List")
),
id = ave(seq_along(unlist(mylist)), List, FUN = seq_along)
),
as.is = TRUE
)
这使
Desc List id
1 A 1 1
2 B 1 2
3 C 1 3
4 D 2 1
5 E 2 2
6 F 3 1
数据
mylist <- list(c("A", "B", "C"), c("D", "E"), "F")
推荐阅读
- c++ - 并行转置不同的矩阵
- swift - Swift - Facebook Graph API:如何将日期作为字符串转换为小时:分钟:秒
- asp.net - R 与 asp.net 和 ssas 的集成
- powershell - 使用“-replace”比较和替换字符串的更多变体
- eclipse - 如何在生成的java文件上没有派生标记的maven-compiler-plugin中设置注释处理器
- docker - 将 eureka 微服务转换为 docker-kubernetes
- javascript - 如何从电子 BrowserWindow 对象获取当前 URL?
- chef-infra - 如何在 ruby_block 之外使用 ruby_block 变量
- java - 当我尝试解密时出现以下错误
- javascript - angularjs 结合两个 Trello api 并将其分配给 $rootScope 变量