r - 具有满足特定条件的列数的新列

标签 r dplyr

我搜索了很多,但找不到解决这个简单问题的好方法。我尝试了 rowSums,但没有成功。

我有一个像第一张图片一样的df。我想创建一个新列 (V4),最好使用 tidyverse,其中包含满足特定条件的行数。在此示例中,条件为 。 == 5

enter image description here

数字 5 在其他列中出现了多少次:

enter image description here

示例 df

df <- data.frame(V1 = c(1,2,5,5,3),
                 V2 = c(1,5,5,5,5),
                 V3 = c(1,3,4,5,1))

最佳答案

我们可以在逻辑矩阵上使用rowSums

df$V4 <- rowSums(df == 5)

如果我们想要一个 dplyr 解决方案

library(dplyr)
df <- df %>%
   mutate(V4 = rowSums(cur_data() == 5))

或者也可以使用reduce

library(purrr)
df %>% 
   mutate(V4 = across(everything(), `==`, 5) %>%
           reduce(`+`))

关于r - 具有满足特定条件的列数的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73463990/

相关文章:

python - 如何在使用 R 按 ID 分组的不同列中找到另一个日期之后的最近日期?

r - 将观察数据框转化为等级

r - 按ID分组并仅过滤平均值最大的组

R ChartSeries 添加带有点的额外图表

r - 使用 persp 的彩色图

r - 使用 dplyr 拟合多个回归模型

r - dplyr::filter 中的多个 if_all() 不起作用

r - R中所有数字的中位数和所有字符的模式

r - 保留旧的(3.1.0 之前)type.convert 行为

r - 在另一列中的特定值之前和之后标记观察