r - 使用散列或其他方法评估与 R 中组合列相关的信息

标签 r algorithm

我有一个记录表,如下所示

ab   cd   ef   10
ac   bd   fg   20
abc  cde  efg  10
ab   cd   ef   20

在上表中,第一行和第四行的前三列完全相同。我需要将这两行组合在一起,得到

ab cd ef 30

在 R 中实现此目标的正确方法应该是什么?迭代每一行和每一列都可以完成这项工作,但它太慢了。我认为我们需要将前三列散列在一起,但我不知道如何在 R 中做到这一点。

最佳答案

您可以尝试使用 dplyr 包进行以下操作

数据

df <- read.table(header= FALSE, text = "
ab   cd   ef   10
ac   bd   fg   20
abc  cde  efg  10
ab   cd   ef   20")

代码

  library(dplyr)
  group_by(df, V1, V2, V3) %>%
      mutate(SUM = sum(V4)) %>%
      distinct()
  ## Source: local data frame [3 x 5]
  ## Groups: V1, V2, V3
  ## 
  ##    V1  V2  V3 V4 SUM
  ## 1  ab  cd  ef 10  30
  ## 2  ac  bd  fg 20  20
  ## 3 abc cde efg 10  10

关于r - 使用散列或其他方法评估与 R 中组合列相关的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452457/

相关文章:

r - 两个列表中向量元素的部分交集

algorithm - 怎样用最简单的方法求某次幂的个位数

algorithm - 寻找子数组的最小绝对和

python - 根据条件获取最小值

r - 计数对字符向量内容的更改

r - 我如何 “flush”数据到我的RSQLite磁盘数据库?

c++ - 将 Dijkstra 算法与 unordered_map 图结合使用

c - 以特定顺序获取字符串组合的递归算法

r - 根据条件 R 匹配和删除行

r - 为什么在 map() 调用中使用 with() 作为函数在这个例子中不起作用?