R 识别变量中所有项目中的通用文本
是否有一个函数可以在我的变量中查找公共文本? 示例数据R 识别变量中所有项目中的通用文本,r,string,R,String,是否有一个函数可以在我的变量中查找公共文本? 示例数据 V1 <- c("Age = 18-24", "Age = 25-34","Age = 35-44","Age = 45-54","Age = 55+") V2 <- c("Social Grade A","Social Grade B","Social Grade D"
V1 <- c("Age = 18-24", "Age = 25-34","Age = 35-44","Age = 45-54","Age = 55+")
V2 <- c("Social Grade A","Social Grade B","Social Grade D","Social Grade E","Social Grade F")
V3 <- c("How often do you do X? - 1 times","How often do you do X? - 2 times","How often do you do X? - 3 or more")
V1我建议使用PTQXC软件包中的LCSn功能
下面代码的解释:
我使用tibble
-包中的lst
-函数轻松创建输入数据的命名列表(V1、V2、Vn)。然后lappy()
此列表上的LCSn()
-函数,并使用'list2env()
将结果列表的内容传递给全局环境
(更改名称后,您将覆盖源数据!)
library( PTXQC )
library( tibble )
L <- lapply( tibble::lst( V1, V2, V3 ), PTXQC::LCSn )
# $V1
# [1] "Age = "
# $V2
# [1] "Social Grade "
# $V3
# [1] "How often do you do X? - "
names(L) <- paste0( names(L), "_text")
list2env( L, .GlobalEnv )
库(PTXQC)
图书馆(tibble)
L我建议使用PTQXC包中的LCSn功能
下面代码的解释:
我使用tibble
-包中的lst
-函数轻松创建输入数据的命名列表(V1、V2、Vn)。然后lappy()
此列表上的LCSn()
-函数,并使用'list2env()
将结果列表的内容传递给全局环境
(更改名称后,您将覆盖源数据!)
library( PTXQC )
library( tibble )
L <- lapply( tibble::lst( V1, V2, V3 ), PTXQC::LCSn )
# $V1
# [1] "Age = "
# $V2
# [1] "Social Grade "
# $V3
# [1] "How often do you do X? - "
names(L) <- paste0( names(L), "_text")
list2env( L, .GlobalEnv )
库(PTXQC)
图书馆(tibble)
L这里有一个循环,从最短字符串的末尾开始,检查所有条目是否匹配(即唯一值的长度为1),从末尾去掉一个字母,直到匹配为止
find_common_start <- function(strings) {
max_length = min(nchar(strings))
for(len in max_length:1) {
if(length(unique(substr(strings, start = 1, stop = len))) == 1) {
return(substr(strings[[1]], start = 1, stop = len))
}
}
}
这里有一个循环,从最短字符串的末尾开始,检查所有条目是否匹配(即唯一值的长度为1),从末尾删除一个字母,直到匹配为止
find_common_start <- function(strings) {
max_length = min(nchar(strings))
for(len in max_length:1) {
if(length(unique(substr(strings, start = 1, stop = len))) == 1) {
return(substr(strings[[1]], start = 1, stop = len))
}
}
}
这些是唯一的模式吗?如果要导入调查数据,请检查特定于提供商的包。例如,qualtRics
软件包使得从qualtRics调查中导入数据变得容易,并且还有一些其他调查服务的软件包。在每个变量中,文本的公共部分始终位于左侧。调查问卷通常采用“问题-文本-然后回答”的形式,因此常见部分的长度各不相同。公共文本没有标准的端点。有些可以是“?”或“-”或其他方式,因此我无法使用这种方式获得该职位。这些是唯一的模式吗?如果您要导入调查数据,请检查特定于提供商的包。例如,qualtRics
软件包使得从qualtRics调查中导入数据变得容易,并且还有一些其他调查服务的软件包。在每个变量中,文本的公共部分始终位于左侧。调查问卷通常采用“问题-文本-然后回答”的形式,因此常见部分的长度各不相同。公共文本没有标准的端点。有些可以是“?”或“-”或其他方式,所以我不能用这种方式得到这个职位。我相信这可以做得更简洁。有什么建议吗?很好的解决方案。我已经测试过了,在我的水平上,我也差不多能理解发生了什么。我相信这可以做得更简洁。有什么建议吗?很好的解决方案。我已经测试过了,在我的水平上,我也差不多能理解发生了什么。很多感谢:如果向量中的所有条目都相同。。。因此,在V1中,所有条目都是“Age=18-24”
,您将得到确切的字符串作为LCS。。(这也是我相信@JonSpring的解决方案的情况。感谢大家的提醒,如果所有项都相同,这正是我所期望的。许多感谢:如果向量中的所有项都相同……那么在V1中,所有项都是“Age=18-24”
,您将得到作为LCS的确切字符串。)。。(这也是我相信@JonSpring的解决方案的情况。谢谢你的提醒,如果所有项目都相同,这正是我所期望的。非常感谢