假设我有以下数据集:

PlotName<- c(A,B,B,C,D,E,F,F,F)
NewValue<- c(1,2,1,3,0,0,2,1,3)
OldValue<- c(3,3,1,2,1,3,0,3,1)

我想对NewValue中重复的元素的OldValuePlotName值求和,消除相同tipe重复的元素(字母)。例如,对于'b'newValue=2+1=3和oldValue=3+1=4
即:
PlotName<- c(A,B,C,D,E,F)
NewValue<- c(1,3,3,0,0,6)
OldValue<- c(3,4,2,1,3,4)

我可以在PlotName中使用repetad值筛选行(例如,使用dplyr),然后分别对这些值求和,但我正在寻找一种更快的方法来操作具有许多重复值的大型数据集。

最佳答案

使用dplyr

library(dplyr)

data.frame(PlotName, NewValue, OldValue) %>%
  group_by(PlotName) %>%
  summarise_all(sum)

# # A tibble: 6 × 3
#   PlotName NewValue OldValue
#     <fctr>    <dbl>    <dbl>
# 1        A        1        3
# 2        B        3        4
# 3        C        3        2
# 4        D        0        1
# 5        E        0        3
# 6        F        6        4

关于r - 不同行中的总和值在列中共享相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43077633/

10-10 00:30