在以下情况下如何使用lapply。
干杯JF
输入列表
dmx <- list(d2 = c("PT", "16", "0603"),
d3 = "T")
预期输出列表
dmx2 <- list(c("Dim2=PT", "Dim2=16", "Dim2=0603"),
"Dim3=T")
目的是将0“Dim#=”粘贴到每个值,其中#代表矢量名称中的数字。
直到知道我在用
for (i in 1:length(dmx)) {
dmx[[i]] <- paste0("Dim",substr(names(dmx[i]), 2, 2), "=", dmx[[i]])
}
但是我注意到应用函数可以更有效。
2条答案
按热度按时间xam8gpfp1#
你可以使用
lapply
来处理索引或名称(但不要指望它会快很多):使用索引(保证安全):
或者直接使用名称(在边缘情况下可能不起作用,但99/100):
您可以使用
substr
-表达式来代替sub
。只是显示一个regex
-替代项。输出:
数据:
**更新。**如果不是为了速度,我们可以
stack
和unstack
:yks3o0rb2#
使用
tidyverse