我有一张有72个边框的单子。这是dput (其中只有5个)。
list(`1` = c(V1 = 7.426758, V2 = 47.398349, V3 = 7.8508356, V4 = 47.686178
), `10` = c(V1 = 7.8508356, V2 = 47.686178, V3 = 8.2749132, V4 = 47.974007
), `11` = c(V1 = 8.2749132, V2 = 47.686178, V3 = 8.6989908, V4 = 47.974007
), `12` = c(V1 = 8.6989908, V2 = 47.686178, V3 = 9.1230684, V4 = 47.974007
), `13` = c(V1 = 9.1230684, V2 = 47.686178, V3 = 9.547146, V4 = 47.974007
))这是所需的输出:
c(7.4267580,47.3983490,7.8508356,47.6861780)如何使用for循环在期望的输出中打印每个边界框?
发布于 2022-11-29 14:24:24
您将通过运行
dput(lapply(your_list, unname))但是,如果您想将字符串化的向量保存到一个新的向量中,那么有一种更直接的方法,通过toString函数。首先,下面是toString对向量所做的操作:
toString(1 : 5)
# [1] "1, 2, 3, 4, 5"太棒了!这几乎是我们想要的,我们只需要把它放到c(…)中
paste0('c(', toString(1 : 5), ')')
# [1] "c(1, 2, 3, 4, 5)"现在,我们需要将此操作应用于原始列表中的每个元素。vapply是这样做的:
result = vapply(your_list, \(x) paste0('c(', toString(x), ')'), character(1L))发布于 2022-11-29 13:02:58
以下内容将以所需格式打印列表中的每个元素:
have <- list(`1` = c(V1 = 7.426758, V2 = 47.398349, V3 = 7.8508356, V4 = 47.686178
), `10` = c(V1 = 7.8508356, V2 = 47.686178, V3 = 8.2749132, V4 = 47.974007
), `11` = c(V1 = 8.2749132, V2 = 47.686178, V3 = 8.6989908, V4 = 47.974007
), `12` = c(V1 = 8.6989908, V2 = 47.686178, V3 = 9.1230684, V4 = 47.974007
), `13` = c(V1 = 9.1230684, V2 = 47.686178, V3 = 9.547146, V4 = 47.974007
))
for (item in have) {dput(unname(item))}https://stackoverflow.com/questions/74614253
复制相似问题