R 快速计算差异字数数据帧
我已经为以下问题挣扎了一段时间: 我想计算两个数据帧之间的字数差异(特征出现的频率)。数据帧包含两列:特征(单词)和频率 我想用df A en df B实现以下结果: 来自df A的所有特征/单词和A的频率减去B的频率。但是,当A中的特征没有出现在B中时,我只希望返回A的频率 我试过使用两个sapply函数:1获取名称向量a的名称:特征和频率,1获取B中相同特征的频率(如果特征存在),否则为0。然后将这两个向量组合以获得所需的数据帧。解决方案是可行的,但速度确实很慢R 快速计算差异字数数据帧,r,dataframe,R,Dataframe,我已经为以下问题挣扎了一段时间: 我想计算两个数据帧之间的字数差异(特征出现的频率)。数据帧包含两列:特征(单词)和频率 我想用df A en df B实现以下结果: 来自df A的所有特征/单词和A的频率减去B的频率。但是,当A中的特征没有出现在B中时,我只希望返回A的频率 我试过使用两个sapply函数:1获取名称向量a的名称:特征和频率,1获取B中相同特征的频率(如果特征存在),否则为0。然后将这两个向量组合以获得所需的数据帧。解决方案是可行的,但速度确实很慢 有谁知道获得这种结果的更快方
有谁知道获得这种结果的更快方法吗?这里需要的基本操作是使用特征/字作为连接条件,将第一个数据帧左连接到第二个数据帧。一个选项是使用
sqldf
包:
library(sqldf)
sql <- "select a.feature, a.frequency - coalesce(b.frequency, 0) as difference "
sql <- paste0(sql, "from dfA a left join dfB b on a.feature = b.feature")
result <- sqldf(sql)
库(sqldf)
sql您可以为此使用整洁的文本挖掘
请参考下面的链接。
当然!太棒了。谢谢,我在web上搜索了R和SQL,还发现merge(x=df1,y=df2,by=“CustomerId”,all.x=TRUE)
进行左连接。(来源:)是的,但是您还必须处理第二个数据帧上的合并部分。另外,我发现merge
要获得您想要的准确输出可能会很麻烦。但是你喜欢哪种方法都行。