Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 快速计算差异字数数据帧_R_Dataframe - Fatal编程技术网

R 快速计算差异字数数据帧

R 快速计算差异字数数据帧,r,dataframe,R,Dataframe,我已经为以下问题挣扎了一段时间: 我想计算两个数据帧之间的字数差异(特征出现的频率)。数据帧包含两列:特征(单词)和频率 我想用df A en df B实现以下结果: 来自df A的所有特征/单词和A的频率减去B的频率。但是,当A中的特征没有出现在B中时,我只希望返回A的频率 我试过使用两个sapply函数:1获取名称向量a的名称:特征和频率,1获取B中相同特征的频率(如果特征存在),否则为0。然后将这两个向量组合以获得所需的数据帧。解决方案是可行的,但速度确实很慢 有谁知道获得这种结果的更快方

我已经为以下问题挣扎了一段时间:

我想计算两个数据帧之间的字数差异(特征出现的频率)。数据帧包含两列:特征(单词)和频率

我想用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
要获得您想要的准确输出可能会很麻烦。但是你喜欢哪种方法都行。