将具有相同结构的不同变量转变为一个

问题描述 投票:0回答:1

我有一个大型数据集,其中包含多个名为:F12.4.1 ... F12.4.10 的变量。

它们每个都有相同的模式,其中 1 表示是,0 表示否。

我想将这些变量转变为一个仅包含 yes 的新变量,所以它看起来像这样:

F12.4.1 --- 30

F12.4.2 --- 20

等等

我创建了这段代码:

library(dplyr)

homeschooling <- data %>%
  rowwise() %>%
  mutate(yes_count = sum(c_across(c(`F12.4.1`, `F12.4.2`, `F12.4.3`, `F12.4.4`, `F12.4.5`, `F12.4.6`, `F12.4.7`, `F12.4.8`, `F12.4.9`, `F12.4.10`))))

但最终的结果由于某种原因是错误的。它列出了所有变量,但它们没有正确的数字。

---

数据

set.seed(2024)
data <- replicate(10L, rbinom(20L, 1, 1/2)) |> 
  as.data.frame() |>
  setNames(paste0("F12.4.", 1:10))
r variables dplyr
1个回答
0
投票

试试这个:

data %>% 
    pivot_longer(cols = colnames(data)) %>%
    group_by(name) %>%
    summarize(count = sum(value))
© www.soinside.com 2019 - 2024. All rights reserved.