dplyr按列逐行

泰勒·林克(Tyler Rinker)

在某些列上应用函数dplyr方法是什么?rowwise例如,我想抓住所有V,列,然后根据行总和将它们转换为百分比。我将展示如何在基础中执行此操作。dplyr链中呢?同样也很高兴以data.table的形式看到(尽管这里首选的是dplyr解决方案)。

x <- data.frame(A=LETTERS[1:5], as.data.frame(matrix(sample(0:5, 25, T), ncol=5)))

data.frame(x[1], x[-1]/rowSums(x[-1]))


##   A        V1        V2        V3         V4         V5
## 1 A 0.1428571 0.2142857 0.2142857 0.35714286 0.07142857
## 2 B 0.2000000 0.2000000 0.1500000 0.20000000 0.25000000
## 3 C 0.3571429 0.2857143 0.0000000 0.07142857 0.28571429
## 4 D 0.1904762 0.2380952 0.1904762 0.23809524 0.14285714
## 5 E 0.2000000 0.2500000 0.1500000 0.25000000 0.15000000

library(dplyr)

props <- function(x) round(x/sum(x), 2)

# does not work
x %>%
    rowwise()
    mutate(props(matches("^.{2}$")))
TemplateRex

您可以结合spread,并gather得到以下单管道:

x <- data.frame(A=LETTERS[1:5], as.data.frame(matrix(sample(0:5, 25, T), ncol=5)))

y <- x %>% 
        gather(V, val, -A) %>% 
        group_by(A) %>% 
        mutate(perc = val / sum(val)) %>% 
        select(-val) %>%
        spread(V, perc)

使用整洁的数据,很容易获得任何按组计算的总和(行,列或任何嵌套的索引级)并计算百分比。spreadgather将让你从你的输入数据格式。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

dplyr和逐行采样

来自分类常见问题

选定列与dplyr的按行相乘

来自分类Dev

dplyr的逐行+ replace_NAs:用其他列中的值替换多列中的NA

来自分类Dev

使用数据透视表按组逐行找出每列总和

来自分类Dev

逐行求和两列

来自分类Dev

R dplyr-按名称模式重新排列列

来自分类Dev

正确使用dplyr :: arrange和按列动态排序的方法

来自分类Dev

R:按多列分组后的 Dplyr 滞后变量

来自分类Dev

使用 dplyr 按所有列排列数据框

来自分类Dev

R dplyr-逐行计算的总计

来自分类Dev

使用dplyr和tidyr逐行划分

来自分类Dev

如何在数据框中按行逐行计算大于0的数字并将其保存在列中

来自分类Dev

每条记录逐行而不是按列插入数据,并在每条记录后插入1个空白行

来自分类Dev

如何通过按Enter逐行显示数组

来自分类Dev

关于特定列的逐行填充?

来自分类Dev

动态逐行连接列值

来自分类Dev

关于特定列的逐行填充?

来自分类Dev

逐行连接3列的值

来自分类Dev

动态逐行连接列值

来自分类Dev

逐行连接所有列

来自分类Dev

R dplyr按一列分组,并根据另外两列过滤行

来自分类Dev

dplyr:如何按列B的条件求和分组的列A,并突变为不带NA的column sum_A

来自分类Dev

使用dplyr :: mutate()对列子集进行逐行cor()

来自分类Dev

R dplyr逐行获取which.min的名称

来自分类Dev

在dplyr中按组获取总和后计算具有行百分比的列

来自分类常见问题

使用字符串向量输入按dplyr中的多列分组

来自分类Dev

使用dplyr创建一个新的按组标准化的列

来自分类Dev

dplyr安排-按另一列对组进行排序,然后在每个组内进行排序

来自分类Dev

使用dplyr按列类别将具有多行值的数据框重组为单行

Related 相关文章

热门标签

归档