删除单元格-R中的重复项

删除单元格-R中的重复项,r,R,我在这里到处搜索,并尝试了重复和独特的函数来满足我的要求,但什么都没用。假设我有一个名为company的数据框,它的状态是可变的。当我折叠行时,在一个状态变量观察中,我留下了这个输出: PA;PA;PA;TX;TX 我如何删除单元内的DUP(以及整个向量),因此如下所示: PA;TX 我删除dup行没有问题,但似乎无法为单元格本身执行此操作 这适用于单个字符串: x <- "PA;PA;PA;TX;TX" x2 <- strsplit(x, ";") x3 <- unl

我在这里到处搜索,并尝试了重复和独特的函数来满足我的要求,但什么都没用。假设我有一个名为company的数据框,它的状态是可变的。当我折叠行时,在一个状态变量观察中,我留下了这个输出:

PA;PA;PA;TX;TX
我如何删除单元内的DUP(以及整个向量),因此如下所示:

PA;TX

我删除dup行没有问题,但似乎无法为单元格本身执行此操作

这适用于单个字符串:

x <- "PA;PA;PA;TX;TX"

x2 <- strsplit(x, ";")

x3 <- unlist(x2)

x4 <- unique(x3)

x5 <- paste(x4, collapse = ";")

你需要一排一排地做吗?可能提供一个示例,说明数据帧的实际外观,如果字符串是
PA;TX;帕TX
?同样的事情?从原始数据帧中删除冗余行似乎是一个更好的主意。谢谢!第一部分工作得很好,但当我尝试将其应用于向量时,我得到以下错误:strsplit(x,“;”)中的错误:非字符参数。你知道这是怎么回事吗?当你试图在字符串以外的东西上运行
strsplit
时,会出现非字符参数的问题,比如数据帧或矩阵。您是否尝试了
sapply
版本?如果运行
class(company$state)
,结果如何?我得到以下结果:[1]“factor”是的,这就是问题所在。在运行对
sapply
的调用之前,请将该因子转换为字符串,或者使用
strsplit(as.character(x),“;”)
将该步骤滚动到对
sapply
的调用中。
sapply(company$state, function(x) paste(unique(unlist(strsplit(x, ";"))), collapse = ";"))