【发布时间】:2023-03-08 10:47:01
【问题描述】:
我有一个非数字数据的数据框,即,
Col1 <- c("a", "b","b",NA)
Col2 <- c(NA, "a", "c", NA)
Col3 <- c(NA,NA,"b", "a")
dat <- data.frame(Col1, Col2, Col3)
dat
# Col1 Col2 Col3
# 1 a <NA> <NA>
# 2 b a <NA>
# 3 b c b
# 4 <NA> <NA> a
我想添加列来计算每行中每个字符的出现次数。我希望数据框看起来像这样
dat
# Col1 Col2 Col3 a b c
# 1 a <NA> <NA> 1 0 0
# 2 b a <NA> 1 1 0
# 3 b c b 0 2 1
# 4 <NA> <NA> a 1 0 0
我使用了函数
f <- function(x) {
sum(x == "a", na.rm = T)}
要查找列“a”、“b”和“c”,但要考虑的字符很多,我希望有人能提出更快的方法。我怀疑可以使用apply 函数,但我没有成功。
【问题讨论】: