标签: rowsum

计算总和列而忽略Na

我正在尝试创建一个总计列,以将前面各列的值相加。但是,如果有NA,我将遇到困难。如果该行中没有NA,则我的脚本将不会计算总和。

我如何编辑以下脚本以将NA实质上计数为0,或者完全忽略它们,但仍计算总和。我实际上不想将NA更改为0。

CTDB %>% mutate(SCARED_TOTAL_CHILD = CTDB %>% rowwise() %>% 
SELECT(SCARED_BREATHE_CHILD:SCARED_SHY_CHILD) %>% rowSums()) -> CTDB
Run Code Online (Sandbox Code Playgroud)

谢谢!!

r rowsum na

4
推荐指数
1
解决办法
3233
查看次数

为什么我的 R 与 rowSums 一起变异不起作用(错误:“mutate()”输入“..2”出现问题。x“x”必须是数字?输入“..2”是“rowSums(.)”。) ?

我正在尝试学习如何使用across()R 中的函数,并且我想用rowSums()它做一个简单的事情。但是,我不断收到此错误:

\n
\n

错误:mutate()输入有问题..2。x 'x' 必须是数字 \xe2\x84\xb9\n输入..2rowSums(., na.rm = TRUE)

\n
\n

然而,我所有相关的列都是数字。任何帮助任何解释我为什么会收到此错误的信息将不胜感激!

\n

这是一个可重现的示例:

\n
library(dplyr)\ntest <- tibble(resource_name = c("Justin", "Corey", "Justin"),\n       project = c("P1", "P2", "P3"),\n       sep_2021 = c(1, 2, NA),\n       oct_2021 = c(5, 2, 1))\n\n\ntest %>%\n  select(resource_name, project, sep_2021, oct_2021) %>%\n  mutate(total = across(contains("_20")), rowSums(., na.rm = TRUE))\n
Run Code Online (Sandbox Code Playgroud)\n

这就是我要去的原因

\n
answer <-  tibble(resource_name = c("Justin", "Corey", "Justin"),\n                  project = c("P1", "P2", …
Run Code Online (Sandbox Code Playgroud)

r rowsum dplyr across

4
推荐指数
1
解决办法
1611
查看次数

R中的行和列总和

这是我的数据集(MergedData)在R中的样子的示例,其中我的每个参与者(5行)在每个测试中获得了分数(7列).我想知道所有测试的总分(所有列),但是每个参与者(行).

另外,我的完整数据集不仅仅包含这几个变量,所以如果可能的话,我想使用公式和循环来实现它,而不必逐行/逐列地输入.

Participant TestScores     
ParticipantA    2   4   2   3   2   3   4
ParticipantB    1   3   2   2   3   3   3
ParticipantC    1   4   4   2   3   4   2
ParticipantD    2   4   2   3   2   4   4
ParticipantE    1   3   2   2   2   2   2
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用:

Test_Scores <- rowSums(MergedData[Test1, Test2, Test3], na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Error in `[.data.frame`(MergedData, Test1, Test2, Test3,  : 
  unused arguments
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?谢谢!!

r rowsum

3
推荐指数
1
解决办法
3万
查看次数

在大型数据框中按行计算字符串的出现次数

我试图在一个大数据框中按行计算二进制字符结果:

V1      V2      V3      V4      V5  
Loss    Loss    Loss    Loss    Loss
Loss    Loss    Win     Win     Loss
Loss    Loss    Loss    Loss    Loss
Run Code Online (Sandbox Code Playgroud)

我需要知道的是按行输赢的频率.这只是一个简短的例子(大型模拟输出的片段),但对于第1行,在五次模拟中,我有五次损失,第二行三次丢失,两次获胜等.

我希望生成一个单独的表来显示按行获胜/失败的频率,或者,如果这不起作用,则添加两个新列:一个为每行提供"Win"和"Loss"的数量.

每一行都是不同的情况,每一列都是该案例的复制品.这显示为具有两个级别"损失""赢"的因素的数据框.

r count rowsum summarize

3
推荐指数
1
解决办法
1620
查看次数

如何在函数 rowsum 中使用“group”参数

               M.5    M5.9  M10.14 M14.17     F.5    F5.9  F10.14 F14.17
Alabama     154902  158765  163731  97673  146906  154067  157592  91339
Alaska       27593   27033   26425  15899   26341   25172   24487  14315
Arizona     223705  236024  230633 138579  214067  218351  227456 130770
Arkansas     99007  105750  103149  59618   92649   99763   94845  56848
California 1296287 1296812 1306123 825862 1240523 1239678 1245997 788024
Colorado    172562  187549  168057 100405  164433  172087  170502  95712
Run Code Online (Sandbox Code Playgroud)

我正在使用包从美国社区调查中汇编数据acs。这是数据框的头部,我有关于每个州 5、5-9、10-14 岁以下的男性和女性的数量。数据框名称是 N0018_12_4。我想找出每个州 18 岁以下儿童的总人口。当我像这样尝试 rowsum 时,我收到一条错误消息,指出“缺少参数“组”,没有默认值”。我尝试阅读 R 上的帮助页面并搜索有关如何在 cran/ 其他地方使用参数“组”的示例,但我仍然不明白我应该用该参数做什么。

任何帮助将不胜感激!:)

r dataframe rowsum

2
推荐指数
1
解决办法
9521
查看次数

矩阵类 (dgCMatrix) 的 rowsum 函数的等效项

对于基本的 R 矩阵类,我们有一个rowsum函数,它可以非常快速地计算跨行组的列总和。

Matrix 包中是否有等效的功能或方法?

rowsum对大型 dgCMatrix 对象(即数百万行,但大约 95% 稀疏)的快速替代方案特别感兴趣。

r matrix sparse-matrix rowsum

2
推荐指数
1
解决办法
873
查看次数

在运算符中使用 %in% 并在 R 中选择

我有一个数据集,我想计算某些列的每个参与者的参与率(非 NA 的数量/总列)。实际数据集有许多我想忽略的列。

为此,假设我只想知道 item 和 score 列(5 列)中的参与率,而忽略 name 和 email 列。此代码有效:

library(tidyverse)

data <- tibble(name = c("Corey", "Sibley", "Justin"),
               item_1 = c(1, 2, NA),
               item_2 = c(1, NA, NA),
               item_3 = c(2, NA, NA),
               item_4 = c(3, 2, NA),
               score = c(NA,NA, 1),
               email = c("on file", "on file", "on file"))

data %>%
  mutate(part_rate = rowSums(!is.na(select(., -c(name, email))))/5 * 100)

Run Code Online (Sandbox Code Playgroud)

但是,在实际数据集中,我对不同的参与者有不同的分母(5 个),因此我只想列出要排除/包含的列一次。我试过这个,但它不起作用:


columns_to_exclude <- c("email", "name")

data %>%
  mutate(part_rate = rowSums(!is.na(select(., !%in% columns_to_exclude)))/5 * 100)

Run Code Online (Sandbox Code Playgroud)

有什么办法可以让我们在这个选择中使用 in 运算符,这样我就可以避免多次复制和粘贴相同的列来排除吗? …

select r in-operator rowsum dplyr

2
推荐指数
1
解决办法
66
查看次数

如何获取R中选定列的rowSums

我是 R 的新手,并寻求帮助来计算每行所选列的总和。我的简单数据框如下。

data = data.frame(location = c("a","b","c","d"),
            v1 = c(3,4,3,3), v2 = c(4,56,3,88), v3 =c(7,6,2,9), v4=c(7,6,1,9),
            v5 =c(4,4,7,9), v6 = c(2,8,4,6))
Run Code Online (Sandbox Code Playgroud)

我想要新数据框中每一行的 V1 到 V3 和 V4 到 V6 列的总和。

   x1   x2
a  14   13   
b  66   18
c
d
Run Code Online (Sandbox Code Playgroud)

我做了类似下面的事情。

rowSums(data[,2:4][,5:7])
Run Code Online (Sandbox Code Playgroud)

但是我的代码应该有问题。在此先感谢您的帮助。

r rowsum

1
推荐指数
2
解决办法
3万
查看次数

R中的行和列矩阵总和按组

我有一个matrix包含两个级别分组的矩阵,如行名和列名所示。

           UKC1_SS1   UKC1_SS2   UKC2_SS1   UKC2_SS2
UKC1_SS1       1          2          3          4
UKC1_SS2       5          6          7          8
UKC2_SS1       9         10         11         12
UKC2_SS2      13         14         15         16
Run Code Online (Sandbox Code Playgroud)

我想根据列名和行名的前四位数字创建一个包含列和行总和的表:

      UKC1   UKC2   
UKC1    14     22  
UKC2    46     54  
Run Code Online (Sandbox Code Playgroud)

我尝试计算rowsums并按colSums顺序,

sum.matrix <- rowsum(matrix, substr(rownames(matrix), start = 1, stop = 4))
sum.matrix <- colSums(sum.matrix, substr(colnames(test), start = 1, stop = 4)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误消息: colSums(test, substr(colnames(test), start = 1, stop = 4)) 错误:'na.rm' 参数无效

当我运行时,sum(is.na)我确认matrix.

r sum matrix rowsum

1
推荐指数
1
解决办法
64
查看次数

使用 R dplyr mutate 创建多个列,而不是使用循环?

我正在尝试使用 R 的dplyr包为数据集中的每年创建多个新列,即与每年季度末数字(三月、六月、九月、十二月)对应的列的总和。我能够弄清楚如何“有效”地做到这一点的唯一方法是使用 for 循环。但有些事情告诉我,有一种替代的、更有效的或更好的方法来解决这个问题(也许我应该在这里使用地图函数,但我只是不确定?)。这是一个可以复制的玩具示例:

\n
library(tidyverse)\nlibrary(glue)\n\n# Create a toy example and print the resulting tibble\nset.seed(100) # make results reproducible by setting seed\nvars <- c("AgeGroup", paste0(month.abb[seq(3, 12, 3)], "_", rep(15:17, each = 4)))\n\n(df <- cbind(LETTERS[1:5], matrix(rpois(n = (length(vars) - 1) * 5, 30), nrow = 5)) %>% \n    data.frame() %>%\n    setNames(vars) %>% \n    tibble() %>% \n    mutate(across(-1, as.integer))\n  )\n
Run Code Online (Sandbox Code Playgroud)\n

它将示例/可重现的数据集设置为:

\n
# A tibble: 5 \xc3\x97 13\n  AgeGroup Mar_15 Jun_15 Sep_15 Dec_15 Mar_16 Jun_16 Sep_16 Dec_16 Mar_17 …
Run Code Online (Sandbox Code Playgroud)

r calculated-columns rowsum dplyr mutate

1
推荐指数
1
解决办法
172
查看次数

dplyr 所选行的行总和

我有以下数据:

library(dplyr)
library(purrr)

 d <- data.frame(
  Type= c("d", "e", "d", "e"),
  "2000"= c(1, 5, 1, 5),
  "2001" = c(2, 5 , 6, 4),
  "2002" = c(8, 9, 6, 3))
Run Code Online (Sandbox Code Playgroud)

我想使用 rowsum 和 mutate 生成一个新行,它是“d”的总和,另一行是“e”的总和,这样数据看起来像这样:

d2 <- data.frame(
Type= c("d", "e", "d", "e", "sum_of_d", "Sum_of_e"),
"2000"= c(1, 5, 1, 5, 2, 10),
"2001" = c(2, 5 , 6, 4, 8, 9),
"2002" = c(8, 9, 6, 3, 14, 12))
Run Code Online (Sandbox Code Playgroud)

我认为代码应该是这样的:

d %>% 
 dplyr::mutate(sum_of_d = rowSums(d[1,3], na.rm = TRUE)) %>% 
 dplyr::mutate(sum_of_e = …
Run Code Online (Sandbox Code Playgroud)

r rowsum dplyr

0
推荐指数
1
解决办法
2753
查看次数

rowsum 基于 r 中的分组或条件

我想根据列名在

我有 50 多列,并查看了各种解决方案,包括这个.

但是,这并不能真正回答我的问题。我有列名,例如: total_2012Q1, total_2012Q2, total_2012Q3, total_2012Q4,..., up to total_2014Q4, 和其他字符变量。我想按年份添加行,所以最后,我会有三年的列:total_2012, total_2013, total_2014.

我不想并选择类似 .. 的东西sample[,2:5]。有没有一种方法可以在不手动查看列号的情况下对它们求和?此外,是一个选项,但如果还有字符变量,你如何只处理你想要总结的 int 变量?

简单的可重现示例(预):

id total_2012Q1 total_2012Q2 total_2013Q1 total_2013Q2 char1 char2
 1         1231         5455         1534         2436    N     Y
 2         3948         1239          223          994    Y     N
Run Code Online (Sandbox Code Playgroud)

可重现的示例(帖子):

id total_2012 total_2013 char1 char2
 1       6686      3970     N     Y
 2       5187      1217     Y     N
Run Code Online (Sandbox Code Playgroud)

感谢您的任何建议。

grouping r conditional-statements rowsum

0
推荐指数
1
解决办法
236
查看次数