我需要什么: 特定列的值重复多少次。
df <- Route1 Route2 Route3 Route4
a b c a
d c a k
e c b c
c a a b
现在,我想计算Route4(包括Route4)的值出现多少次。 预期结果是:
Ans <- Route1 Route2 Route3 Route4 Count
a b c a 2 #as a has come 2 times
d c a k 1 #as k has come 1 times
e c b c 2 #as c has come 2 times
c a a b 1 #as b has come 1 times
欢迎任何包裹或直接方式。
答案 0 :(得分:1)
使用apply
:
我们可以在每一行中查找Route4
列数据,并测量其length
。
df$count <- apply(df, 1, function(x) length(which(x==x[4])))
输出:
Route1 Route2 Route3 Route4 count
1 a b c a 2
2 d c a k 1
3 e c b c 2
4 c a a b 1
答案 1 :(得分:1)
我们可以使用rowSums
。请注意,所有列都必须是字符,而不是因数。
df$count <- rowSums(df == df$Route4)
df
# Route1 Route2 Route3 Route4 count
# 1 a b c a 2
# 2 d c a k 1
# 3 e c b c 2
# 4 c a a b 1
数据
df <- read.table(text = "Route1 Route2 Route3 Route4
a b c a
d c a k
e c b c
c a a b",
header = TRUE, stringsAsFactors = FALSE)