【发布时间】:2012-08-19 18:32:16
【问题描述】:
Excel 中有名为left、right 和mid 的函数,您可以在其中从单元格中提取部分条目。例如,=left(A1, 3) 将返回单元格 A1 中最左边的 3 个字符,=mid(A1, 3, 4) 将从单元格 A1 中的第三个字符开始,并为您提供编号 3 - 6 的字符。R 中是否有类似的函数或类似的简单如何做到这一点?
作为一个简化的示例问题,我想取一个向量
sample<-c("TRIBAL","TRISTO", "RHOSTO", "EUGFRI", "BYRRAT")
并创建 3 个新向量,其中包含每个条目中的前 3 个字符、每个条目中的中间 2 个字符以及每个条目中的最后 4 个字符。
Excel 没有函数(据我所知)的一个稍微复杂的问题是如何使用每个条目的第 1、3 和第 5 个字符创建一个新向量。
【问题讨论】:
-
仅供参考,最好不要使用来自基本 R 的
sample(或c,或df等)等重要函数的名称来命名您的对象。跨度> -
@mrdwab 很好的评论,但这真的没那么重要。见stackoverflow.com/q/6135868/602276
-
@Andrie,在那个链接的问题中提供了很好的答案(也很好的问题)。对我来说,想到的主要问题是可读性和调试,甚至是看我一年前写的一些代码;但是,如果代码一开始就被正确记录或注释,那将是较少的问题。