将一列的每个唯一值与其他列R中的每个唯一值求和

mjberlin15

我的数据框示例:

df<- structure(list(Var1 = c("A-01", "A-01", "A-02", "A-01", "A-02", 
                         "A-03", "A-01", "A-02", "A-03", "A-04", "A-01", "A-02", "A-03", 
                         "A-04", "A-05", "A-01", "A-02", "A-03", "A-04", "A-05", "A-07", 
                         "A-01", "A-02", "A-03", "A-04", "A-05", "A-07", "A-08", "A-01", 
                         "A-02"), Var2 = c("A-02", "A-03", "A-03", "A-04", "A-04", "A-04", 
                                           "A-05", "A-05", "A-05", "A-05", "A-07", "A-07", "A-07", "A-07", 
                                           "A-07", "A-08", "A-08", "A-08", "A-08", "A-08", "A-08", "A-09", 
                                           "A-09", "A-09", "A-09", "A-09", "A-09", "A-09", "A-11", "A-11"
                         ), value.data = c(1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 
                                           -1, -1, 1, NA, -1, 1, 1, -1, -1, -1, 1, -1, 0, 1, -1, 1, 1)), row.names = c(37L, 
                                                                                                                       73L, 74L, 109L, 110L, 111L, 145L, 146L, 147L, 148L, 181L, 182L, 
                                                                                                                       183L, 184L, 185L, 217L, 218L, 219L, 220L, 221L, 222L, 253L, 254L, 
                                                                                                                       255L, 256L, 257L, 258L, 259L, 289L, 290L), class = "data.frame")

因此,每次在“ Var1”或“ Var2”中出现变量时,都会对“ value.data”中不同唯一值的出现次数进行计数。

所以我将有如下摘要表:

df_sum<- data.frame(Var = c(rep("A-01", 4), rep("A-02", 4)), value.data = c(rep(c(1, -1, 0, NA), 2)), sum=c(5,3,0,0,4,3,0,1))

我可以一个子集一个接一个地做。对于数百个变量而言效率不高。

谢谢

冰激凌巨嘴鸟

如果您将数据转换为长格式,则可以使用 count

library(tidyverse)

df %>% 
  melt('value.data') %>% 
  count(value, value.data) %>% 
  complete(value, value.data, fill = list(n = 0)) %>% 
  mutate_if(is.numeric, as.integer)

# # A tibble: 36 x 3
#    value value.data     n
#    <chr>      <int> <int>
#  1 A-01         - 1     3
#  2 A-01           0     0
#  3 A-01           1     5
#  4 A-01          NA     0
#  5 A-02         - 1     3
#  6 A-02           0     0
#  7 A-02           1     4
#  8 A-02          NA     1
#  9 A-03         - 1     5
# 10 A-03           0     0
# # ... with 26 more rows

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找其他列中每个唯一值的列中唯一值的计数

对其他列中每个条件的列中的唯一值求和(如果值在条件列的左侧)

每个主键的唯一列值

通过其他列值获取列中每个唯一值的前x%行

熊猫,对于一列中的每个唯一值,在另一列中获得唯一值

为列中的每个唯一值生成唯一列

为其他列中的每个唯一值分配新值

将数字索引添加到 R 中另一列中每个唯一值的行中

在 R 中,指示另一列的每个 ID 是否具有多个唯一值

将DataFrame中的每个唯一值重塑为列

将一列的每个唯一值分成单独的列并删除原始列?

R 中每个唯一列值的随机样本 1 行

跳过每个唯一列值的行

为每个唯一列值插入记录

SQL查询以获取另一列中每个唯一值的最大值

熊猫:从另一列中的每个唯一值中获取一列的最大值

对唯一列值进行分组以获取 Pandas 数据框列中每个唯一值的平均值

旋转/数据透视表以在分组列中为每个唯一值制作一列

如何将一列中的值归为另一个R中的每个唯一值?

熊猫将(A)列与其他(B)列进行比较并返回(A)列中存在的唯一值

根据其他列中的值计算一列中唯一实例的数量

如何从文件中的每个其他值中减去每个第一列值?

与其他一起获取唯一列值。使用内部联接时的列

R获取具有相同但较小的其他列值的唯一列值的计数

如何使一列在其他列中具有唯一值

R:用绝对(正)输出将Y列除以Z,然后对X列的每个唯一值求和输出

X列中每个X列中的唯一值

为列中的每个唯一值分配值

MySQL为另一列中的每个唯一值选择最新条目