r - 合并R中的半重复行

标签 r merge duplicates rows

我有一个数据框(在下面的示例中称为 A),看起来像这个子集:

Survey HaulNo Year Species Unsexed Males Females HaulUnique Lat_long  
FRGF      1   2000  134567      NA     4      NA     1_2000     50.7_-2.5 
FRGF      1   2000  134567      NA    NA       5     1_2000     50.7_-2.5 
FRGF      2   2003  134578      10    NA      NA     2_2003     49.5_-1.5 
FRGF      3   1998  123557      NA    NA       7     3_1998     50.1_-0.5
FRGF      3   1998  123557      NA     3      NA     3_1998     50.1_-0.5 

我想合并这些行,使它们看起来像下面的数据:

Survey HaulNo Year Species Unsexed Males Females HaulUnique Lat_long  
FRGF      1   2000  134567      NA     4      5     1_2000     50.7_-2.5 
FRGF      2   2003  134578      10    NA      NA    2_2003     49.5_-1.5 
FRGF      3   1998  123557      NA     3      7     3_1998     50.1_-0.5 

本质上,我想合并行,以便“无性别”、“男性”和“女性”列中的信息全部在一行内,而不是在当前情况下,数据被分割并出现重复信息关于相同物种和运输等的多行。重要的是,当我合并行时,其他所有内容都保持并保持唯一,因为每一行(一旦合并)代表一个独特的运输。

我不想对这 3 列应用任何类型的总和/平均值/其他函数,并且我希望保持所有其他变量相同。我也不想创建任何额外的新列,并且希望尽可能保留 NA。

注意。鉴于我有一个巨大的数据集,我并不总是知道a)哪些行是半重复的,b)每行有关于无性别/男性/女性的哪些组合的信息。

我尝试了多种方法来做到这一点,但没有一种方法能够奏效,部分原因是作为 R 的初学者,我一直在努力真正理解我尝试过的函数并将它们应用到我的数据中(聚合、 ddply, Actor )。

提前致谢。

最佳答案

类似于

aggregate(
  df[, c("Unsexed", "Males", "Females")],
  df[, c("Survey", "HaulNo", "Year", "Species", "HaulUnique", "Lat_long")],
  FUN = sum,
  na.rm = TRUE
)

关于r - 合并R中的半重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079387/

相关文章:

r - 设置ggplot2标签背景色

mercurial - Mercurial 可以 merge 一个不是 head 的命名分支吗?

Git - 裸仓库不能有主分支的工作树 - 为什么?

python - 用python中的重复元素减去2个列表

ios - Unity3d - 使用 fmod 找到的 ios 重复方法

R:如何通过ID变量(作为新数据框)获取两个因子变量水平的共同计数(频率)

r - 锁定 R Shiny 的仪表板侧边栏 (shinydashboard)

r - 逻辑回归 : x and y training data errors in binomial variable (glm, glmnet 公式)

Git强制将一个分支重新 merge 到另一个分支

javascript - 如何从javascript中的字符串中获取唯一字符列表?