在 R 中提取具有一些独特字符的字符串
Extract strings with SOME unique characters in R
这是我的铅:
我有 9 个字符串,它们都是唯一的,但有共同的字符。我想在其中提取具有一些独特字符的字符,这些字符不存在于任何其他字符串中。
我认为将每个字符串与其他字符串进行比较的循环是一个不错的选择,但我不知道 use.I 哪个函数不能使用 unique() 函数,因为所有字符串都是唯一的。
这是字符串:
[1]“.contexte d'enseignement”
[2] ".contexte d'enseignement.cohérence avec le niveau des élèves""
[3] ".contexte d'enseignement.contraintes pratiques""
[4] ".contexte d'enseignement.contraintes pratiques.contrainte de temps""
[5] ".contexte d'enseignement.contraintes pratiques.contrainte 材料""
[6] ".contexte d'enseignement.contraintes pratiques.faisabilité par rapport à la classe""
[7] ".contexte d'enseignement.objectifs de l'Education Nationale""
[8] ".contexte d'enseignement.objectifs de l'Education Nationale.adéquation avec le programme""
[9] ".contexte d'enseignement.objectifs de l'Education Nationale.progression de la difficulté""
这就是我等待的结果:
[1] ".contexte d'enseignement.cohérence avec le niveau des élèves""
[2] ".contexte d'enseignement.contraintes pratiques.contrainte de temps""
[3] ".contexte d'enseignement.contraintes pratiques.contrainte 材料""
[4] ".contexte d'enseignement.contraintes pratiques.faisabilité par rapport à la classe""
[5] ".contexte d'enseignement.objectifs de l'Education Nationale.adéquation avec le programme""
[6] ".contexte d'enseignement.objectifs de l'Education Nationale.progression de la difficulté""
感谢您的帮助!
你可以用 sapply()
这样做。在下面的代码中,sapply()
用于循环遍历字符串中的所有观察值。它使用 stringr
包中的 str_detect()
来识别 str
的第 i 个值是否在 str
的任何其他值中。如果第 i 个字符串在任何其他字符串中,则将 str_detect()
的输出包装在 any()
中将计算为 TRUE
。然后您可以使用该结果对字符串进行子集化以创建所需的输出。
str <- c(".contexte d\'enseignement",
".contexte d\'enseignement.cohérence avec le niveau des élèves",
".contexte d\'enseignement.contraintes pratiques",
".contexte d\'enseignement.contraintes pratiques.contrainte de temps",
".contexte d\'enseignement.contraintes pratiques.contrainte matérielle",
".contexte d\'enseignement.contraintes pratiques.faisabilité par rapport à la classe",
".contexte d\'enseignement.objectifs de l\'Education Nationale",
".contexte d\'enseignement.objectifs de l\'Education Nationale.adéquation avec le programme",
".contexte d\'enseignement.objectifs de l\'Education Nationale.progression de la difficulté")
library(stringr)
w <- sapply(1:length(str),
function(x)any(str_detect(str[-x], str[x])))
str[-which(w)]
# [1] ".contexte d'enseignement.cohérence avec le niveau des élèves"
# [2] ".contexte d'enseignement.contraintes pratiques.contrainte de temps"
# [3] ".contexte d'enseignement.contraintes pratiques.contrainte matérielle"
# [4] ".contexte d'enseignement.contraintes pratiques.faisabilité par rapport à la classe"
# [5] ".contexte d'enseignement.objectifs de l'Education Nationale.adéquation avec le programme"
# [6] ".contexte d'enseignement.objectifs de l'Education Nationale.progression de la difficulté"
这是我的铅: 我有 9 个字符串,它们都是唯一的,但有共同的字符。我想在其中提取具有一些独特字符的字符,这些字符不存在于任何其他字符串中。 我认为将每个字符串与其他字符串进行比较的循环是一个不错的选择,但我不知道 use.I 哪个函数不能使用 unique() 函数,因为所有字符串都是唯一的。
这是字符串:
[1]“.contexte d'enseignement”
[2] ".contexte d'enseignement.cohérence avec le niveau des élèves""
[3] ".contexte d'enseignement.contraintes pratiques""
[4] ".contexte d'enseignement.contraintes pratiques.contrainte de temps""
[5] ".contexte d'enseignement.contraintes pratiques.contrainte 材料""
[6] ".contexte d'enseignement.contraintes pratiques.faisabilité par rapport à la classe""
[7] ".contexte d'enseignement.objectifs de l'Education Nationale""
[8] ".contexte d'enseignement.objectifs de l'Education Nationale.adéquation avec le programme""
[9] ".contexte d'enseignement.objectifs de l'Education Nationale.progression de la difficulté""
这就是我等待的结果:
[1] ".contexte d'enseignement.cohérence avec le niveau des élèves""
[2] ".contexte d'enseignement.contraintes pratiques.contrainte de temps""
[3] ".contexte d'enseignement.contraintes pratiques.contrainte 材料""
[4] ".contexte d'enseignement.contraintes pratiques.faisabilité par rapport à la classe""
[5] ".contexte d'enseignement.objectifs de l'Education Nationale.adéquation avec le programme""
[6] ".contexte d'enseignement.objectifs de l'Education Nationale.progression de la difficulté""
感谢您的帮助!
你可以用 sapply()
这样做。在下面的代码中,sapply()
用于循环遍历字符串中的所有观察值。它使用 stringr
包中的 str_detect()
来识别 str
的第 i 个值是否在 str
的任何其他值中。如果第 i 个字符串在任何其他字符串中,则将 str_detect()
的输出包装在 any()
中将计算为 TRUE
。然后您可以使用该结果对字符串进行子集化以创建所需的输出。
str <- c(".contexte d\'enseignement",
".contexte d\'enseignement.cohérence avec le niveau des élèves",
".contexte d\'enseignement.contraintes pratiques",
".contexte d\'enseignement.contraintes pratiques.contrainte de temps",
".contexte d\'enseignement.contraintes pratiques.contrainte matérielle",
".contexte d\'enseignement.contraintes pratiques.faisabilité par rapport à la classe",
".contexte d\'enseignement.objectifs de l\'Education Nationale",
".contexte d\'enseignement.objectifs de l\'Education Nationale.adéquation avec le programme",
".contexte d\'enseignement.objectifs de l\'Education Nationale.progression de la difficulté")
library(stringr)
w <- sapply(1:length(str),
function(x)any(str_detect(str[-x], str[x])))
str[-which(w)]
# [1] ".contexte d'enseignement.cohérence avec le niveau des élèves"
# [2] ".contexte d'enseignement.contraintes pratiques.contrainte de temps"
# [3] ".contexte d'enseignement.contraintes pratiques.contrainte matérielle"
# [4] ".contexte d'enseignement.contraintes pratiques.faisabilité par rapport à la classe"
# [5] ".contexte d'enseignement.objectifs de l'Education Nationale.adéquation avec le programme"
# [6] ".contexte d'enseignement.objectifs de l'Education Nationale.progression de la difficulté"