我搜索了很多,但找不到解决这个简单问题的好方法。我尝试了 rowSums
,但没有成功。
我有一个像第一张图片一样的df
。我想创建一个新列 (V4
),最好使用 tidyverse
,其中包含满足特定条件的行数。在此示例中,条件为 。 == 5
。
数字 5 在其他列中出现了多少次:
示例 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/