2017-10-10 103 views
2

在此先感谢。 我需要在每行现有值(O,1,2)的数据帧计数数,并创建用于计数数3列对每个值 我使用的示例:R:计数数据集中每行的值数并创建一个新列

example <- data.frame(var1 = c(2,3,3,2,4,5), 
       var2 = c(2,3,5,4,2,5), 
       var3 = c(3,3,4,3,4,5)) 
example <- cbind(example, apply(example, 1, function(x)length(unique(x)))) 

但它仅返回数独特的价值。

+2

您能否提供相应的示例输出? –

回答

2

这是你想要的吗?

all_vals = unique(unlist(example)) 
tt = t(apply(example, 1, function(x) table(factor(x, levels = all_vals)))) 
cbind(example, tt) 
# var1 var2 var3 2 3 4 5 
# 1 2 2 3 2 1 0 0 
# 2 3 3 3 0 3 0 0 
# 3 3 5 4 0 1 1 1 
# 4 2 4 3 1 1 1 0 
# 5 4 2 4 1 0 2 0 
# 6 5 5 5 0 0 0 3 

好的下一步是重新命名新列。

+0

感谢您的帮助 – Irina

相关问题