Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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、 关于聚合data.table的补充_R_Data.table_Aggregate_Ones Complement - Fatal编程技术网

R、 关于聚合data.table的补充

R、 关于聚合data.table的补充,r,data.table,aggregate,ones-complement,R,Data.table,Aggregate,Ones Complement,是否可以在R data.tables中使用补码进行聚合。下面的例子 library(data.table) dt <- data.table(a=c("word1","word2","word2","word2"), b=c("cat1","cat1","cat1","cat2")) 库(data.table) dt以下是您的代码(我添加了双引号以便运行): 除当前单词外,属于每个类别的单词数是属于该类别的单词数与成对(类别,单词)出现次数之间的差值。 为了获得结果,我将两个data.t

是否可以在R data.tables中使用补码进行聚合。下面的例子

library(data.table)
dt <- data.table(a=c("word1","word2","word2","word2"), b=c("cat1","cat1","cat1","cat2"))
库(data.table)

dt以下是您的代码(我添加了双引号以便运行):

除当前单词外,属于每个类别的单词数是属于该类别的单词数与成对(
类别
单词
)出现次数之间的差值。 为了获得结果,我将两个
data.table
对象按类别列合并

aux = merge(newdt, catCnt, by="b")
然后我计算总计数和“夫妇”计数之间的差值:

如果只想保留所需的列,请执行以下操作:

res = aux[, c("b", "a", "cnt_not_a")]
res

我不知道您是否可以通过使用
数据.table
命令来实现这一点,但这对我来说非常简单…

以下是您的代码(我添加了双引号以便运行):

除当前单词外,属于每个类别的单词数是属于该类别的单词数与成对(
类别
单词
)出现次数之间的差值。 为了获得结果,我将两个
data.table
对象按类别列合并

aux = merge(newdt, catCnt, by="b")
然后我计算总计数和“夫妇”计数之间的差值:

如果只想保留所需的列,请执行以下操作:

res = aux[, c("b", "a", "cnt_not_a")]
res
我不知道您是否可以通过使用
数据来实现这一点。仅使用table
命令,但这对我来说非常简单…

遵循这样的思想,即计算每个类别的总计数减去每个类别中的字数之差,但使用
数据。table
语法在连接时进行更新,这就变成了“一行”:

遵循计算每个类别的总计数减去每个类别中的单词计数的差值的思想,但使用
数据。表
语法在连接时进行更新,这将成为“一行”:



关于这个问题还不清楚是的,我也不知道这个问题是关于什么的。此外,你的例子是不可复制的。你试过运行你自己的代码吗?我不明白…不应该
word2,cat2
be 2吗?对不起,我很忙,谢谢你的帮助,下面给出的答案正是需要的!0,因为在第2类中没有其他词,如果你只想浏览数据,比如“代码> dt[n,by =(a),b)],dCase.(dsd,b+nb~a,val=“n”,填充= 0)] <或代码> dt[,n,by =(a,b)] [,na:=和(n),by=a],dcST(.sd,a+n~b,值vvar=n)Word2,CAT2=,fill=0)]
关于请求的内容不清楚是的,我也不知道问题是关于什么的。此外,你的例子是不可复制的。你试过运行你自己的代码吗?我不明白…不应该
word2,cat2
be 2吗?对不起,我很忙,谢谢你的帮助,下面给出的答案正是需要的!0,因为在第2类中没有其他词,如果你只想浏览数据,比如“代码> dt[n,by =(a),b)],dCase.(dsd,b+nb~a,val=“n”,填充= 0)] <或代码> dt[,n,by =(a,b)] [,na:=和(n),by=a],dcST(.sd,a+n~b,值vvar=n)Word2,CAT2=,fill=0)]
那就更好了!顺便说一下,感谢您对格式的改进;)谢谢关于data.tables,我有很多东西需要学习,但这确实非常简洁,绝对是必要的。非常感谢@puslet88用于学习数据。表我推荐上的小插曲和常见问题解答,以及Frank的Quick R教程@UweBlock的第3章,再次感谢您的帮助!这些资源看起来非常有用,与我所需要的完全一样,直截了当!竖起两个大拇指!那就更好了!顺便说一下,感谢您对格式的改进;)谢谢关于data.tables,我有很多东西需要学习,但这确实非常简洁,绝对是必要的。非常感谢@puslet88用于学习数据。表我推荐上的小插曲和常见问题解答,以及Frank的Quick R教程@UweBlock的第3章,再次感谢您的帮助!这些资源看起来非常有用,与我所需要的完全一样,直截了当!竖起两个大拇指!谢谢!按部就班的方法确实是计算事情的方法,我们解决了问题,非常感谢!我会给Uwe更简洁的答案打勾,以备将来参考。在这种情况下,我认为编辑OP的问题来修正打字错误通常是安全的(比如添加那些双引号)。非常感谢!按部就班的方法确实是计算事情的方法,我们解决了问题,非常感谢!我会给Uwe更简洁的答案打勾,以备将来参考。在这种情况下,我认为编辑OP的问题来修正打字错误通常是安全的(比如添加那些双引号)。
aux = merge(newdt, catCnt, by="b")
aux$cnt_not_a = aux$tot_b - aux$cnt
res = aux[, c("b", "a", "cnt_not_a")]
res
library(data.table)
dt <-data.table(a = c("word1", rep("word2", 3L)), b = c(rep("cat1", 3L), "cat2"))
dt[, .N, by = .(a, b)][dt[, .N, by = b], on = "b", Nc := i.N - N][]
       a    b N Nc
1: word1 cat1 1  2
2: word2 cat1 2  1
3: word2 cat2 1  0