我的问题非常类似于:

但是,这里提出的解决方案不适用于我,因为在同一行中,该值可能出现两次,但我只想计算出现该值的行.我已经想出了一个解决方案,但似乎太长了:

> toy_data = data.table(from=c("A","A","A","C","E","E"), to=c("B","C","A","D","F","E"))
> toy_data
   from to
1:    A  B
2:    A  C
3:    A  A
4:    C  D
5:    E  F
6:    E  E
> #get a table with intra-link count
> A = data.table(table(unlist(toy_data[from==to,from ])))
> A
   V1 N
1:  A 1
2:  E 1
A #get a table with total count
> B = data.table(table(unlist(toy_data[,c(from,to)])))
> B
   V1 N
1:  A 4
2:  B 1
3:  C 2
4:  D 1
5:  E 3
6:  F 1
> 
> # concatenate changing sign
> table = rbind(B,A[,.(V1,-N)],use.names=FALSE)
> # groupby and subtract
> table[,sum(N),by=V1]
   V1 V1
1:  A  3
2:  B  1
3:  C  2
4:  D  1
5:  E  2
6:  F  1

是否有一些功能可以在更少的线路中完成这项工作?我以为在python中我会连接from和to,然后匹配(),但找不到正确的sintax

编辑:我知道这可以工作A=length(toy_data[from=="A"|to=="A",from])次,但我希望避免各种"A","B"...次循环(我不知道如何以这种方式格式化输出)

推荐答案

你可以将to向量子集:

data.table(table(unlist(toy_data[,c(from,to[to!=from])])))

   V1 N
1:  A 3
2:  B 1
3:  C 2
4:  D 1
5:  E 2
6:  F 1

R相关问答推荐

使用lares::corr_var函数在for循环中分配变量的问题

保存shiny 的代码嗅探器:避免$ Symbol问题

如何在ggplot 2 geom_segment图表中将UTC转换为EET?

高质量地将R格式的图表从Word中输出

查找满足SpatRaster中条件的单元格位置

如何自定义Shapviz图?

ggplot的轴标签保存在officer中时被剪切

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

如何改变时间图R中的悬停信息?

在RStudio中堆叠条形图和折线图

当我们有多个反斜杠和/特殊字符时使用Gsubing

为左表中的所有行使用值Fill滚动左连接

根据列表中项目的名称合并数据框和列表

在多页PDF中以特定布局排列的绘图列表不起作用

如何在ggplot2中创建多个y轴(每个变量一个)

如何在反曲线图中更改X标签

主题(Legend.key=Element_RECT(Fill=&Quot;White&Quot;))不起作用

如何移动点以使它们的打印不重叠

如何合并不同列表中的数据文件,包括基于名称的部分匹配,而不是一对一等价

在GT()中的列之间添加空格