【发布时间】:2021-04-26 18:29:25
【问题描述】:
我对 R 不是很了解,但对其他几种语言有一定的了解,并且对此有解决方案,但我想知道是否有更有效的方法,因为我计划将其用于大型列表。我在网上看了几次,厌倦了各种各样的事情,没有运气,this answer 可能是答案,但我似乎无法让它发挥作用。
我有一个来自外部文件的字符串列表,每个字符串的每个元素中可能包含不同数量的字符。我想填充这个列表(带有尾随空格),以便所有元素都具有相同的长度。我将在示例中使用“+”代替空格以进行澄清。所以
c(“dog”, “cat”, “mouse”, “hare”, “snake”)
会变成
[1] “dog++”, “cat++", “mouse”, “hare+”, “snake”
我有什么作品,但我认为使用 paste、rep 或类似的方法会有一个更高效、更优雅的解决方案。 Y是我的角色列表
# find max length of elements
maxY <- max(nchar(Y))
# size of padding to each element
Ydif <- max(nchar(Y)) - nchar(Y)
# pad each string element with the required amount of white space
for (l in 1:length(Ydif)) {
if (Ydif[l] > 0) {
Ypad[l] = strrep(" ", times=Ydif[l])
} else {
Ypad[l] = "" # if zero dont add padding
}
}
# combine the padding with the original list to get all the same length
paste0(Y,Ypad, collapse=NULL)
【问题讨论】: