我试图摆脱R中paste
函数中多余的l1-l3
。
看起来很简单,但是我找不到一种解决方法。假设l1 = list(a=1)
l2 = list(b=2)
l3 = list(c=3)
l4 = list(l1,l2=l2,l3=l3)
是列表
l4
请注意,names(l4 ) = paste('Name',names(l4),sep = '.')
的第一个元素未命名。现在,我想为以下名称添加一个常量:
names(l4)
[1] "Name." "Name.l2" "Name.l3"
以下是输出:
.
如何摆脱第一个输出(Name.
)中的{{1}}
答案 0 :(得分:3)
我们可以使用trimws
(来自R 3.6.0
-可以使用自定义字符指定whitespace
)
trimws(paste('Name',names(l4),sep = '.'), whitespace = "\\.")
#[1] "Name" "Name.l2" "Name.l3"
或者用sub
来匹配.
(.
是任何字符的元字符,因此我们在结尾处{\\
转义以获取字面意思) {1}}),并替换为空白($
)
""
如果sub("\\.$", "", paste('Name',names(l4),sep = '.'))
末尾已经有.
,我们可以使用索引选项
names