Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的字符串数据创建抽象模式_R - Fatal编程技术网

从R中的字符串数据创建抽象模式

从R中的字符串数据创建抽象模式,r,R,我试图通过将标记分配到位置来在R中的字符串中找到模式。我有一个如下形式的向量。基本上是一个人在一年内改变位置。例如,在第一种情况下,一个人从伦敦搬到纽约,从伦敦搬到北京,再搬到克利夫兰 path <- c('Lon-NYC-Lon-Bei-Cle', 'Mos-NYC-Bei-Cle-San', 'Bei-Cle-Bei-NYC-San') path如果您的唯一值总是少于26个,那么您可以使用如下内容 sapply(strsplit(path,"-"), function(x)

我试图通过将标记分配到位置来在R中的字符串中找到模式。我有一个如下形式的向量。基本上是一个人在一年内改变位置。例如,在第一种情况下,一个人从伦敦搬到纽约,从伦敦搬到北京,再搬到克利夫兰

path <- c('Lon-NYC-Lon-Bei-Cle', 'Mos-NYC-Bei-Cle-San', 'Bei-Cle-Bei-NYC-San')

path如果您的唯一值总是少于26个,那么您可以使用如下内容

sapply(strsplit(path,"-"), function(x) 
    paste(LETTERS[factor(x, levels=unique(x))], collapse="-")
)
# [1] "A-B-A-C-D" "A-B-C-D-E" "A-B-A-C-D"

在这里,我们使用
strsplit()
来查找不同的片段,并使用
factor()
来识别重复的值。然后我们使用因子下面的数值索引成大写字母集

如果您的唯一值总是少于26个,您可以使用类似的方法

sapply(strsplit(path,"-"), function(x) 
    paste(LETTERS[factor(x, levels=unique(x))], collapse="-")
)
# [1] "A-B-A-C-D" "A-B-C-D-E" "A-B-A-C-D"
在这里,我们使用
strsplit()
来查找不同的片段,并使用
factor()
来识别重复的值。然后,我们使用因子下面的数值索引成大写字母集