检查 r 中数据框的每一列中特定值的出现[重复]

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

我有一个带有 student_id 和 day 的 DF

student_id  day_1   day_2   day_3   day_4   day_5   day_6   day_7   day_8
A_0001      P   P   P   A   P   L   P   P
B_0001      A   P   P   P   P   P   L   P
C_0001      P   P   P   P   P   P   A   P
A_0002      P   P   P   P   P   P   P   L
A_0003      P   P   L   P   P   P   P   P
A_0005      P   P   P   P   P   A   P   P
B_0002      P   P   P   P   L   L   P   P
B_0004      P   P   P   P   L   A   P   P
B_0005      P   P   P   P   P   P   L   P

这里 P 存在,A 不存在,L 是离开 我想在最后创建一个列,每个学生只缺少 A 值。

我试过使用 for 循环但出现错误

r dataframe for-loop multiple-columns
1个回答
0
投票

你可以像这样使用

rowSums

library(dplyr)
df %>%
  mutate(total_A = rowSums(. == 'A'))
#>   student_id day_1 day_2 day_3 day_4 day_5 day_6 day_7 day_8 total_A
#> 1     A_0001     P     P     P     A     P     L     P     P       1
#> 2     B_0001     A     P     P     P     P     P     L     P       1
#> 3     C_0001     P     P     P     P     P     P     A     P       1
#> 4     A_0002     P     P     P     P     P     P     P     L       0
#> 5     A_0003     P     P     L     P     P     P     P     P       0
#> 6     A_0005     P     P     P     P     P     A     P     P       1
#> 7     B_0002     P     P     P     P     L     L     P     P       0
#> 8     B_0004     P     P     P     P     L     A     P     P       1
#> 9     B_0005     P     P     P     P     P     P     L     P       0

创建于 2023-03-09 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.