我在R中合并两个数据帧时遇到问题。
第一个由10个变量组成的103731个障碍组成。我必须用来合并的变量有77111个唯一值,其余的是NA
s,值为0.第二个包含这些变量的频率加上NA
的频率所以一个77112的框架为2个变量。
我需要得到的结果是第一个用合并变量的频率加入的帧,所以103731的df为合并变量的每个值的频率(如果freq> 1也是重复的那样)每个NA
(或0))。
有人能帮助我吗?
我现在得到的结果包含一个1 894 919 obs的数据框,我用过:
tot = merge(df1, df2, by = "mergingVar", all= F, sort = F);
我也玩了很多'all=
'并且没有任何变体给出正确的df。
答案 0 :(得分:1)
为什么不直接拿下第一张桌子的频率表?
a <- data.frame(a = c(NA, NA, 2,2,3,3,3))
data.frame(table(a, useNA = 'ifany'))
a Freq
1 2 2
2 3 3
3 <NA> 2
来自mutate
的或plyr
ddply(a, .(a), mutate, freq = length(a))
a freq
1 2 2
2 2 2
3 3 3
4 3 3
5 3 3
6 NA 2
7 NA 2