我有一个字符串向量,我想删除向量中每个元素的第5个字符。我找到了this answer,但对我来说并不是很有帮助。
起初,我认为
substr(myvec, 5,5) <- ""
会做到这一点。但碰巧这段代码没有用。
做我打算做的事情的解决办法就是:
paste(substr(myvec, 1,4), substr(myvec, 6,nchar(myvec)), sep="")
但是我真的不能直接使用substr吗? 以下是一个可重复的例子。
myvec <- c("19601Urbana", "19601Rural", "19701Urbana", "19701Rural", "19801Urbana", "19801Rural", "19912Urbana", "19912Rural", "20002Urbana", "20002Rural", "20102Urbana", "20102Rural")
有什么想法吗?我想我可以尝试一些正则表达式,但似乎有点难以使用它。而且,这似乎有点矫枉过正。
更新:由于有人说它适用于自己的计算机,我的会话信息: R版本3.0.0(2013-04-03) 平台:x86_64-w64-mingw32 / x64(64位) 我正在使用Windows 8.
答案 0 :(得分:2)
尽管有这些评论,但我得到了同样的结果。无论出于何种原因,将substr(...)
设置为空字符串都不会(在我的系统上)。所以这是一个解决方法。
ch <- intToUtf8(1) # non-printing character
substr(myvec,5,5) <- ch # substitute that
gsub(ch,"",myvec,fixed=T) # now get rid of it...
# [1] "1960Urbana" "1960Rural" "1970Urbana" "1970Rural" "1980Urbana" ...
是的,这是皮塔饼。