1

我在合并 R 中的两个数据帧时遇到问题。

第一个由 6 个变量的 103731 个 obs 组成。我必须用来合并的变量有 77111 个唯一值,其余的是NA值为 0 的 s。第二个包含这些变量的频率加上NAs 的频率,因此 77112 个 obs 的帧用于 2 个变量。

我需要得到的结果帧是第一个与合并变量的频率相结合的帧,因此 df 为 103731 obs 与合并变量的每个值的频率(因此如果 freq > 1 以及每个NA(或0))。

有谁能够帮我?

我现在得到的结果包含一个 1 894 919 obs 的数据框,我使用了:

tot = merge(df1, df2, by = "mergingVar", all= F, sort = F);  

我也用 ' ' 玩了很多,all=但没有一个变化给出了正确的 df。

4

1 回答 1

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

mutateplyr

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
于 2014-03-06T13:14:46.383 回答