r - 是否有一个 R 函数可以按 n 个列表中的元素创建嵌套列表?
问题描述
我正在重新格式化数据集 ,my_data
以输入到另一个需要非常特定格式的程序中。我很难获得所需的适当嵌套列表,特别是usagedata
元素。本质上,usagedata
是一个包含两个变量var
和的列表time
,每个变量都有五个观察值。相反,我需要usagedata
列出 4 个观察结果,每个观察结果都带有var
和time
作为元素。
示例数据框如下。
my_data <- data.frame(
Id.1 = as.character(c("A", "B", "C")),
Id.2 = as.character(c("D", "E", "F")),
Var.1 = as.numeric(c(100,150,200)),
Time.1 = as.character(c("Jan","Jan","Jan")),
Var.2 = as.numeric(c(75,125,175)),
Time.2 = as.character(c("Feb", "Feb", "Feb")),
Var.3 = as.numeric(c(80,120,140)),
Time.3 = as.character(c("Mar", "Mar", "Mar")),
Var.4 = as.numeric(c(80,120,140)),
Time.4 = as.character(c("Apr", "Apr", "Apr")),
)
然后,我创建df.1
以将 Var 和 Time 列表作为单个元素逐行保存。
df.1 <- my_data %>%
transmute(
var = transpose(as.list((select(., starts_with("Var"))))),
time = transpose(as.list((select(., starts_with("Time")))))
)
inputdata <- my_data %>%
transmute(
Name = Id.1,
Unit = Id.2,
usagedata = df.1
)
inputdata <- split(inputdata, seq(nrow(inputdata)))
然而,最终结果是该元素是一个包含和usagedata
的单个元素的列表,每个元素都有 4 个观察值。我想要的是一个包含 4 个元素的列表,每个包含一个元素。我不知道如何去格式化这个。任何帮助表示赞赏。var
time
usagedata
var
time
最终输出应遵循此层次结构。
inputdata list [3]
[[1]] list [3]
Name character
Unit character
usagedata list [4]
[[1]] list [2]
Var double
Time character
[[2]] list [2]
Var double
Time character
etc...
解决方案
推荐阅读
- python - 为什么变量没有在循环外更新?
- docker - 我应该如何使用基于 RHEL 的容器支付 RHEL 许可证
- python - Python DataFrame如何从日期时间戳中拆分或提取日期
- oracle - Oracle SQL CURSOR 更新与加入和提交
- javascript - 如何将检测 127.0.0.1/8 IP 的正则表达式转换为更安全的正则表达式?
- java - Maven存档多个包含不同文件的战争
- kubernetes - TLS 引导,--token-auth-file,用户“system:anonymous”无法创建证书签名请求
- makefile - 从顶层目录调用 GNU Make
- android - 在 Android 中为定期工作管理器设置初始延迟
- apache-storm - Storm 1.2.2 Supervisor 也将 localhost 作为 nimbus 并且无法连接到它,尽管 nimbus 在另一台服务器中并且已经在storm.yaml 中指定