【发布时间】:2017-09-07 16:08:53
【问题描述】:
假设我有一个向量,例如
vec <- 0:10
还有一个函数比如
f <- function (x) x %% 3
R 中是否有一个内置函数可以根据f 的返回值将该向量分组到每个元素上?如果不是,那么使用内置函数实现此功能的最直接方法是什么?
预期的返回值为
list(c(0,3,6,9), c(1,4,7,10), c(2,5,8))
举一个更复杂的例子,取一个字符串向量,并将那些是字谜的组合在一起(即它们由相同的字母组成)。在这种情况下,f 将接受一个字符串,将其小写,然后对其进行排序。在 Unix 系统上有一个可用的单词列表:
words <- scan('/usr/share/dict/words', what=character, sep='\n')
我不坚持使用这些特定的数据结构(向量、列表),如果它们不是最适合 R 中的这项任务的话。
【问题讨论】:
-
有
split:split(0:10, (0:10) %% 3) -
您需要
vec <- 0:10,然后使用split(vec, f(vec))。正如你提到的那样,为了分解字符串,有strsplit。喜欢strsplit(c("this is some string", "and another one"), split="")。 -
谢谢。您会发布答案还是这个问题太简单而无法保留,我最好删除它?
-
很可能是骗子。也许这个:stackoverflow.com/questions/21499679/…