【发布时间】:2017-05-23 20:22:01
【问题描述】:
在我的数据集test 中,我想生成一个基于两列的频率表 - start 和 end。我的目标是每行只计算一个唯一字母,即使它出现在两列中。例如,在第一行中,“C”应仅计为一个。在第 4 行中,“B”应计算一次,“A”应计算一次,因为它们不相同。我知道我应该以某种方式使用unique() 函数,但我不确定如何将它与table() 结合起来生成一个频率表,将连续重复的字母计为一个(NA 值应该省略)。任何建议,将不胜感激。
> test
start end
1 C C
2 A <NA>
3 <NA> <NA>
4 B A
5 A A
6 <NA> A
7 <NA> B
8 <NA> C
9 A <NA>
10 C C
下表的输出应该是:
> output
station Freq
1 A 5
2 B 2
3 C 3
以及测试数据:
> dput(test)
structure(list(start = c("C", "A", NA, "B", "A", NA, NA, NA,
"A", "C"), end = c("C", NA, NA, "A", "A", "A", "B", "C", NA,
"C")), .Names = c("start", "end"), row.names = c(NA, -10L), class = "data.frame")
【问题讨论】: