【发布时间】:2017-05-05 12:00:24
【问题描述】:
我有两个数据框,每个数据框都有一个列名称
df1:
name
@one2
!iftwo
there_2_go
come&go
df1 = structure(list(name = c("@one2", "!iftwo", "there_2_go", "come&go")),.Names = c("name"), row.names = c(NA, -4L), class = "data.frame")
df2:
name
One2
IfTwo#
there-2-go
come.go
df2 = structure(list(name = c("One2", "IfTwo#", "there-2-go", "come.go")),.Names = c("name"), row.names = c(NA, -4L), class = "data.frame")
现在比较两个数据框的不等式很麻烦,因为使用了特殊符号%in%。使用stringR 删除特殊符号可能很有用。但是我们如何才能将stringR 函数与%in% 一起使用并显示它们之间的不匹配
已经将mutate()全部转换为小写toLower()如下
df1<-mutate(df1,name=tolower(df1$name))
df2<-mutate(df2,name=tolower(df2$name))
比较的当前输出:
df2[!(df2 %in% df1),]
[1] "one2" "iftwo#" "there-2-go" "come.go"
内容基本相同但带有特殊符号的预期输出:
df2[!(df2 %in% df1),]
character(0)
问题:我们如何忽略Frame内容中的符号
【问题讨论】:
-
您是否错误地附加了两次
df而不是 df 和 df2?另外你的预期输出是什么? -
哦,这是从 R 控制台复制到堆栈溢出时的错误
-
现在更正了@Sotos
-
@zx8754 没觉得对这个很有用