【发布时间】:2021-12-30 17:50:48
【问题描述】:
我有一个具有以下结构的对象,这对我来说并不常见(数据框中有一个数据框,其中有一个列表)。我想添加新的观察结果,所有变量的值都相同(1 除外);这里的值来自通过索引的额外列表)。对象的嵌套结构使得使用循环很难做到这一点。 因此,我复制了 dput 的输出并将值输入其中。我主要使用函数rep() 和unlist()。执行它并打印对象,我收到一条关于数据帧损坏且对象未更改的警告消息。
向给定结构添加行的常用方法是什么? 我尝试循环遍历它,但还没有成功。
deput(x)
structure(list(collapsed = c(FALSE, FALSE, FALSE), enabled = c(TRUE,
TRUE, TRUE), id = c("Bilateral", "AlphaTree", "Merge"), parameters = structure(list(
bands = list(c(1L, 2L, 3L, 5L), c(1L, 2L, 3L, 5L), NULL),
intensity = c(3L, NA, NA), saveToDisk = c(FALSE, NA, NA),
Strategy = c(NA, "maxDiff", NA), Attribute = c(NA,
"", NA), om = c(NA, 27L, NA), Condition = c(NA, NA,
"num < 10"), check = c(NA, NA, FALSE), ite = c(NA,
NA, 10L), Algo = c(NA, NA, "closest mean")), class = "data.frame", row.names = c(NA,
3L)), type = c("PreProc", "Seg", "Op")), class = "data.frame", row.names = c(NA,
3L))
【问题讨论】:
-
@akrun dput 已经很有帮助了!谢谢
-
不清楚您的预期输出。如果你想添加一行只有一些列值,
library(tibble);library(dplyr); x %>% add_row(collapsed = FALSE, enabled = TRUE) -
另外,由于有一个
data.frame列,它可以是unpacked 即library(tidyr);x %>% unpack(parameters)在添加行之前 -
你能在这里展示如何使用解包功能吗?如何结合 unpack 和 add_row。当我对参数使用 unpack 时,我收到此错误:错误:必须使用有效的下标向量对列进行子集。 x 下标的类型错误
list。 -
该错误可能是由于某些软件包版本问题,因为我没有收到 `packageVersion('tidyr') [1] '1.1.3'` 的错误
标签: r dataframe nested base dput