让x
成为向量
[1] "hi" "hello" "Nyarlathotep"
是否可以从y
s.t生成一个向量,我们说x
。它的组件是
[1] "hi" "hello" "Nyarl"
换句话说,我需要一个R中的命令,它将文本字符串剪切到给定的长度(在上面,长度= 5)。
非常感谢!
答案 0 :(得分:10)
比substring
strtrim
更明显的是> x <- c("hi", "hello", "Nyarlathotep")
> x
[1] "hi" "hello" "Nyarlathotep"
> strtrim(x, 5)
[1] "hi" "hello" "Nyarl"
:
substring
strtrim
非常适合从给定位置的字符串中提取数据,但widths
完全符合您的要求。
第二个参数是> strtrim(x, c(1, 2, 3))
[1] "h" "he" "Nya"
,它可以是宽度与输入向量长度相同的向量,在这种情况下,每个元素都可以按指定的数量进行修剪。
{{1}}
答案 1 :(得分:6)
使用substring
查看?substring
> x <- c("hi", "hello", "Nyarlathotep")
> substring(x, first=1, last=5)
[1] "hi" "hello" "Nyarl"
上次更新
您还可以将sub
与正则表达式
> sub("(.{5}).*", "\\1", x)
[1] "hi" "hello" "Nyarl"
答案 2 :(得分:1)
(可能)更快的替代方法是sprintf()
:
sprintf("%.*s", 5, x)
[1] "hi" "hello" "Nyarl"