我有一个类似于:
的数据框ID Fig1 Fig2 TER1 TER2 TER3
ERT-1 50 25 A A C
ERT-2 80 35 B C B
ERT-5 10 75 C C A
列TER1
,TER2
和TER3
中只有三个不同的值,想要知道与ID
对应的每个值的计数。
我尝试了dcast
,但它无法正常工作。
必填数据框:
XYZ A B C
TER1 1 1 1
TER2 1 0 2
TER3 1 1 1
答案 0 :(得分:1)
这是dplyr
的想法。您首先需要gather
您感兴趣的列,然后计数,即
library(dplyr)
df %>%
gather(var, val, -c(1:3)) %>%
select(var, val) %>%
table() %>%
as.data.frame.matrix() %>%
rownames_to_column('XYZ')
给出,
XYZ A B C 1 TER1 1 1 1 2 TER2 1 0 2 3 TER3 1 1 1