如何在R语言中统计多列每行的Never与Always出现次数
统计每行中'Never'和'Always'的出现次数(R语言实现)
原始数据
User <-c('User_1','User_2','User_3','User_4','User_5') Q1 <- c('Never', 'Rarely', 'Sometimes', 'Often', 'Always') Q2<- c('Sometimes', 'Rarely', 'Sometimes', 'Often', 'Rarely') Q3 <- c('Always', 'Rarely', 'Sometimes', 'Always', 'Rarely') data1 <- data.frame(User, Q1, Q2, Q3)
实现方法
方法1:基础R代码
直接用rowSums按行统计目标值出现次数,无需额外依赖:
# 生成结果数据框 result <- data.frame( User = data1$User, Never = rowSums(data1[, -1] == "Never"), # 排除User列,统计每行"Never"的数量 Always = rowSums(data1[, -1] == "Always") # 统计每行"Always"的数量 ) # 输出结果 print(result)
输出结果:
User Never Always 1 User_1 1 1 2 User_2 0 0 3 User_3 0 0 4 User_4 0 1 5 User_5 0 1
方法2:使用dplyr包(tidyverse风格)
如果习惯tidyverse工具链,可采用以下写法:
# 首次使用需先安装dplyr # install.packages("dplyr") library(dplyr) result <- data1 %>% rowwise() %>% # 按行处理数据 mutate( Never = sum(c_across(Q1:Q3) == "Never"), # 统计Q1-Q3列中"Never"的次数 Always = sum(c_across(Q1:Q3) == "Always") # 统计Q1-Q3列中"Always"的次数 ) %>% select(User, Never, Always) # 保留需要的列 print(result)
输出结果与方法1完全一致。
内容的提问来源于stack exchange,提问作者Socsi2
相关产品推荐
相关产品推荐

