目标 我想计算文档中" love"一词的次数,但前提是它不在一个单词之前,例如'而不是',例如"我喜欢电影"将算作一种外观,而"我不喜欢电影"不算是外观. 问题 如何使用TM软件包进行操作? R代码 下面是一些我想修改以进行上述的自身包含的代码. require(tm) # text vector my.docs
以下是关于 data.table 的编程技术问答
首先,让我们从DataTable 1(DF1)开始: date id sales cost city name 1: 06/19/2016 1 149 101 MTL Bank1 2: 06/20/2016 1 150 102 MTL Bank1 3: 06/21/2016 1 151 104 MTL Bank1 4: 06/22/2016 1 152 107 MTL Bank1 5: 06/23/2016 1 155 99 MTL Bank1 6: 06/19/2016 2 84 55 NY Bank2 7: 06/20/2016 2 83 55 NY Bank2 8: 06/21/2016 2 80 56 NY Bank2 9: 06/22/2016 2 81 57 NY Bank2 10: 06/23/2016 2
在大型数据集(〜1m案例)中,每种情况都具有"创建"和"审查" dateTime.我想计算在创建每个情况时开放的其他案例的数量.案例在其"创建"和"审查" dataTimes之间打开. 几种解决方案在小型数据集( 20分钟,使用6 * 4GHz内核和64GB RAM.即使有多核库,我也可以将时间减少8或10.不足以处理〜1m的情况. 我正在寻找一种更有效的方法来进行此计算.在下面,我提供了一个功能,该功能使您可以轻松地创建大量的"创建"和"审查" dateTime对以及到目前为止使用dplyr和data.table库的两个解决方案.为了简单起见,将这些时间报告给用户.您可以简单地更改顶部的" case_count"变量以重新执行并再次查看时间,并轻松比较您可能需要建议的其他解决方案的时机. 我将使用其他解决方案更新原始帖子,以适当地信誉其作者.在此先感谢您的帮助! # Load libraries used in this example library(dply
我想使用单独的分组在R中进行两个样本T测试. T.test必须"公正",这意味着对于外部组中的所有交易(下面的第2组),必须为每个内部组(下面的第1组)进行t检验,例如:"内部组A" VS."内部组不是"".下面显示的for循环代码可能比口头说明更清晰... 我当前的代码在下面.有人知道这样做的速度/更好的方法吗?开放使用任何软件包,但当前使用data.table. 对于上下文,我有约100万行的交易数据.第1组表示一个人(如果有多个行,它们具有多个交易),并且包含〜30k唯一值.第2组表示邮政编码,并包含〜500个唯一值 谢谢! library(data.table) # fake data grp1
我没有数据经验. 使用data.frame我经常使用以下命令来检查唯一值的观察数: df$Obs=with(df, ave(v1, ID-Date, FUN=function(x) length(unique(x)))) 使用数据时是否有任何相应的方法? 解决方案 是的,有.令人高兴的是,您询问了data.table的最新功能之一,添加了v1.8.2: :=现在由组实施(FR#1491),并将其子分配给新列 通过参考,现在自动添加列(用NA初始化 子分配没有触摸)(FR#1997). :=可以组合所有 i的类型,So := by group 包括i以及by的分组. 由于:=按参考是由参考来的 (直接或间接)cbind s分组结果为DT的方法,因为 根本没有(大)DT的副本.这是一个简短自然的语法 可以与其他查询更复杂. DT[,newcol:=sum(colB),by=colA] 在您的示例中,iiuc,应该是: DT[, Obs:=.N, b
我发现数据和dplyr试图做同样的事情时会产生不同的结果.我想使用dplyr语法,但要以data.table的方式计算它.用例是我想在表中添加小计.为此,我需要对每个变量进行一些汇总,但然后保留相同的变量名称(在转换版本中).数据.表使我可以对变量进行一些聚合并保留相同的名称.然后使用相同的变量进行另一个聚合.它将继续使用未转换版本.但是,dplyr将使用转换版本. 在总结文档中,它说: # Note that with data frames, newly created summaries immediately # overwrite existing variables mtcars %>% group_by(cyl) %>% summarise(disp = mean(disp), sd = sd(disp)) 这基本上是我遇到的问题,但是我想知道是否有一个很好的解决方法.我发现的一件事就是将变换变量命名为其他内容,然后在最后重命名,但这对我来说并不好.
我有一个问题的问题. 我从UTF-8中编码了我读取的表的文本文件(我也尝试了UTF-8 without BOM.). 我想从此文本文件中读取表,将其转换为data.table,设置key并使用二进制搜索.当我尝试这样做时,以下出现: 警告消息: 在[.data.table中 在联接列中检测到已知的编码(Latin1或UTF-8).数据.表比较当前的字节,因此不支持 混合编码很好;即,同时使用latin1和utf-8,或者如果任何未知的编码是非aScii,其中一些是已知的,并且 其他人没有.但是,如果仅使用Latin1或UTF-8,则所有 未知的编码是ASCII,那么结果应该可以.在未来 如果一切正常,我们将检查您,并避免此警告.这 棘手的部分是这样做,而不会影响仅ASCII的性能 案例. 和二进制搜索不起作用. 我意识到我的data.table - key列都由:"未知"和" UTF-8"编码类型: > table(Encoding(poli.dt$wor
我主要在Mac中使用rstudio.最近,我必须开始使用Windows.但是,我发现unique()在数据中没有提供唯一的行.基于密钥表.这是一个示例: a=c(2,3,3,3,3,5,6,7) b=c("a","a","f","g","a","d","t","l") e=data.table(a,b) setkey(e, a) key(e) # this works fine unique(e) unique()仅删除整个行的副本(第5行).完全相同的代码在我的Mac上运行正常. 解决方案 这是因为您在两个上都有不同的数据.在Mac上,您有一个 如?unique中所述(在data.table v1.9.8+中): 默认情况下使用了所有列.最近改变了 数据的一致性.帧方法.版本 含义,从现在开始,即使您已经有了键,也需要明确指定by变量,否则它将仅使用所有列. 在您的特定示例中,这起作用 unique(e, by = "a") # a b