r - 如何在没有在 R 中添加索引的情况下获取(子)对象的名称?
问题描述
我想获取一个(子)对象的名称(因此所有生成的对象之后unlist
),而不在 R 中添加索引。
(简化)样本数据:(更复杂的数据见文末备注)。
lst <- list(
a = data.frame(b = 1, c = c(1, 2, 3), "d2" = 5, "x21" = 3)
)
预期输出:
c("b", "b", "b", "c", "c", "c", "d2", "d2", "d2", "x21", "x21", "x21")
电流输出:
> unlist(lst) %>% names
[1] "aa" "b.x" "b.a.b1" "b.a.b2" "b.a.b3" "b.a.c1" "b.a.c2" "b.a.c3" "b.a.d21" "b.a.d22" "b.a.d23" "b.a.x211" "b.a.x212"
[14] "b.a.x213"
我尝试了什么:
lapply(lst, names)
越来越近。但请注意,这是简化数据,目标 data.frame 可以嵌套在 3+ 个父列表中。
lst <- list(
list(aa = 1,
b = list(x = 2,
a = data.frame(b = 1, c = c(1, 2, 3), "d2" = 5, "x21" = 3)
)
)
)
我想开始按点拆分,然后检查模式的结果值 (b1, b2, b3) 或 (d21, d22, d23),如果检测到像 (1-10) 这样的清晰模式,则删除数字。但这似乎是一种解决方法。所以我想问是否有更好的方法可以遵循。
解决方案
这:
lapply(lst, function(x) rep(names(x), each=nrow(x)))
回报:
$a
[1] "b" "b" "b" "c" "c" "c" "d2" "d2" "d2" "x21" "x21" "x21"
推荐阅读
- sql - 具有多个条件的 SQL 选择
- python - 为上周运行的相同代码运行 selenium 测试用例时出错
- r - R plotly():悬停模板格式
- javascript - 按字母顺序对对象数组进行排序并将空值移到末尾
- python - python-docx 用自定义内容替换 URL
- swift - 空文本字段时SwiftUI文本字段字体大小缩小
- python - TypeError: Enemy() 不接受任何参数我反复收到此错误
- c++ - Bazel 覆盖 C++ 构建 _coverage_report.data 为空
- python - 发生异常:Python 中的 TypeError
- python-3.x - 如何使用标签上索引的特定列中的值拆分字符串?